I'm thinking we should refactor `FeatureSet` so it accepts a list of features from it's caller, rather than retrieving them directly. The web/thrift handler will be responsible for getting the list and passing it through

The purely functional code at the core shouldn't need to be mocked.

This is good for now though