[ADAM-327] Adding gene, transcript, and exon models.

A few major changes in these commits: 

* Upgrading to bdg-formats 0.3.1
* This version of bdg-formats changes the Pileup schema, so we fix all the errors that this introduces -- and we _eliminate_ the Pileup aggregation code
* This version of bdg-formats also changes the Feature schema, so we've updated the feature parsing code to create these new features correctly
* The FeatureHierarchy classes have been rewritten as wrappers around Feature
* Added Gene, Transcript, Exon, and UTR case classes to represent gene models, and added code for assembling them from 'flat' Features.




This is the setting that worked, w/r/t the gencode GTF transcript extraction test.  Maybe I'm misunderstanding something?  Do we have a data comparison test (the same data that we can pull from two different sources) to test this particular question?