Adds model.query documentation and allows model.query to be a callable

A callable query object allows filtering the model using a complex SQLAlchemy
query---for example, using multiple joins which can't be easily translated into
search parameters.
Rephrases to simplify documentation on custom query.
Simplifies session:query() logic.
Removed redundant tests and tests not testing the new functionality.
Implemented TestAPI tests for callable model query attributes.
Removes extra whitespace; uses {} string formatting.
Records changes due to previous commits.