Fully general filtering, ordering, selecting, and pagination

Well, I've been working on this over the two months since PyCon, but the wait is finally over!

This adds fully general filtering, ordering, selecting, and pagination to the data API.  The same options are available via REST or via the Python API.  The REST API uses type information from the Data API to properly parse query parameters into Python values.  And finally, while result specs are applied automatically by default (eliminating the need for every endpoint to implement everything), there's the option for endpoints to apply some of the result spec directly, presumably by modifying the DB query.

This is big -- sorry about that -- but the commits are nicely segregated if you want to look at one at a time.