Problems fixed:
- Feature repr did not include feature_extractor since that API was changed
- Intervals that were equivalent were not equal, so Features were not properly
sorted or equal
BREAKING CHANGE: source now refers to a Source object, the FE that
created the Feature is now referred to by feature_extractor; path is
dropped
This should be more consistent, plus we needed a reference to the
original Source kept around anyway -- path worked but a Source object is
more consistent and explicit about intent
This composes an Interval with some ancillary data:
- source (what feature extractor did we get this from)
- path (where is it now on the FS)
- score (for ranking)
TODO double check we aren't overloading the word 'source' to have two
meanings