Exon objects

Added methods to EnsemblRelease:
* `exon_by_id(exon_id)`
* `exon_by_transcript_and_number(transcript_id, exon_number)`
* `exons_at_locus(contig, position)

These return Exon objects, which in addition to basic location info, also track the offsets of start and stop codons.