[ADAM-327] Adding Gene, Transcript, and Exon models

Not yet ready for merging. 

Preliminary support for gene models from GTF files.
I'm fine with that approach in principle.  But the only issue is what schema are you proposing for the unified Feature object?  One thing I could imagine is that you end up with Feature objects that have a ton of null fields, in potentially non-contiguous ways, and so you'll have to manually pay attention to what fields are legal based on whether the Feature instance derived from BED, GFF, or whatever.  The feature hierarchy is in some ways simply a bit of syntactic sugar, but it helps with finding some potential compile-time errors.

Either way, it's certainly optional, as the user is currently required to wrap their objects with the appropriate BaseFeature subclass manually.  You could eliminate the hierarchy, but still add a field specifying the original file type.