Consolidated Features Pull

So.... I ended up spending a bunch of time today working on the API instead of doing real work... Since I've got a million pull requests right now I figured I'd merge them all on a branch so that I could fix the merge conflicts and make them work together and so there would be a convenient single place for code review if anyone else bothers to look at this.

It's all up for any debate, I don't mind re-merging all the pieces again without one or with another implementation of one. In particular I made some architectural decisions for the `DataProvider` stuff that I'd love feedback on, or suggestions for a better way to do it.

This branch passes the tests and runs on the data in the `qcumber-data` repo. Field limiting works, but currently it does not do any de-normalizing and doesn't add links to the returned json.

See you tomorrow