Rename _buildQuery to query().

Having the method be both public and have a shorter name makes creating
insert, update and delete queries easier.
Merge pull request #2549 from markstory/3.0-table-query

3.0 - Rename _buildQuery to query().
Update doc block.

In PHP5.4 there is no reason to make a closure around $this.
Fix issues in ORM\Query

* A ResultSet should not be returned for non-select type queries.
* The Model.beforeFind event should not be triggered when doing insert,
  delete, or update queries.
* The return type of ORM\Query::execute() can now return either
  a ResultSet or a StatementInterface. This accounts for the various
  kinds of queries that can be run. We might want to further separate
  results from executing queries. Perhaps having fetch()/get() get
  results and execute() get statements.
* Split resultset building from query execution. This will help make
  building cachable finders easier.
Merge pull request #2551 from markstory/3.0-query-fixes

Fix issues in ORM\Query
Split union into 2 methods.

Having separate methods for union and unionAll makes reading code
simpler as there are fewer boolean arguments floating around.
Merge pull request #2554 from cakephp/3.0-union-all

3.0 - Split union into 2 methods.