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.
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