The Role of Alternative Splicing in Gene Expression, Protein Diversity, Disease, and Evolution