More reworking of Feature

I'm not a software engineer, so tell me if what I did here is totally stupid.  Tests fail with an OOM on GeneSuite.

Also, I'm not sure why this PR has included so much stuff.  My git history looks all weird...perhaps you force pushed to this branch after I checked out this branch earlier this afternoon?  Eitherway, check out mainly `FeatureHierarchy.scala`, `FeatureParser.scala`, `ReferenceMappingContext`, etc.