Fixing Query::count(), previous implementation was trying to be too
smart and was giving inconsisten results.

In some cases count() returned the full
Making Query::count() return consistent results. It was trying to be too
smart on what it needed to return.

In some cases it returned the total rows found and in other cases the
total rows fetched. Having a consisten result. This method, while very
mariginally slower, will always return the correct result.
Adding the ability to register a callback funciton to override the
results of Query::count()
Fixed paginator tests
Fixing alcohol related typos
Optimizing count queries by not using a derived table when there is no
group by nor distinct clause
Merge pull request #2704 from cakephp/3.0-better-count

3.0 better count