Output exception message if value is compared to NULL in search.
Test case for comparison to NULL with generic operators.
Fixes typo in docstring.
use query.selectable instead of query.statement in count helper

This is a better fix for #309.

Using `query.statement` generates a warning about not having labels; while investigating this warning, it seemed like `query.statement` is more for internal SQLAlchemy use, and `query.selectable` was what we should be using. In addition, `selectable` does not raise these warnings, and also does not suffer from the problem with joins that `statement` did, fixed in #309.

This is the warning that was raised, in `tests.test_views.TestAssociationProxy.test_num_results`:

```
/Users/matt/programs/flask-restless/SQLAlchemy-0.9.4-py2.7.egg/sqlalchemy/sql/base.py:490: SAWarning: Column 'id' on table <sqlalchemy.sql.selectable.Select at 0x1102cced0; Select object> being replaced by Column('id', Integer(), table=<Select object>, primary_key=True, nullable=False), which has the same key.  Consider use_labels for select() statements.
  self[column.key] = column
```
Merge pull request #314 from goodscloud/fix-count-helper-pt-II

use query.selectable instead of query.statement in count helper
Fixed typos in docs.

Replaced 'message' with 'description' and 'status_code' with 'code'.
Merge pull request #322 from ykalchevskiy/patch-1

Fixed typos in docs.
Removed some usage of _sa_class_manager since it didn't represent the full model. Fixes issue #319
fix delete from relation

the if-block for deleting an object from a relation was not committing; the tests were still passing because the session was still open and the next API call would pull the object out of the session, not the DB. Put a `session.remove()` before the API call to check that the removed object is actually gone from the relation, and you'll see that it's still there in the DB.
return 404 for DELETEs to nonexistent/inaccessible resources

Idempotency only means that subsequent identical requests cannot have
additional side-effects. Since the response code is not a side effect,
but rather a return value, `DELETE` should respond with `204` only if
an object is deleted, and with `404` when nothing is deleted.

(It is very confusing if an API returns `204` to a DELETE for a nonexistent
or inaccessible resource.)
support null/is_null sub-ops inside has/any ops

The code in `_sub_operator` was assuming that the sub-operator dictionary argument had a `val` key, but in the case of the `null` and `is_null` operators, there is no `val` key, so we use `get` and pass `None` to `_create_operation`.
Enable automated testing on Python 3.4
If model has query, but it has no attribute filter, use session

Query is None for models with latest Flask-SQLAlchemy.
https://github.com/mitsuhiko/flask-sqlalchemy/blob/master/flask_sqlalchemy/__init__.py#L567
Fix count() when LIMIT is set
Merge pull request #333 from fluxism/fix-limit

Fix count() when LIMIT is set
Alphabetizes imports
Merge pull request #315 from eirnym/model-query-none

If model has query, but it has no attribute filter, use session
Merge pull request #328 from frewsxcv/patch-1

Enable automated testing on Python 3.4
trim to 79 characters
rename params to data in post() to match patch() better