3.0 reliable beforefind

The Model.beforeFind event is now triggered in Query::sql(), this has a couple advantages:

* Calling `$query->sql()` for debugging will now contain the full actual query to be executed
* Queries used as sub-expressions (like in unions) will contain modifications made by behaviors or other callbacks.

Refs https://github.com/cakephp/cakephp/issues/5115
I guess my concern comes from:

1. Build query
2. `debug($query);`
3. beforeFind is triggered.
4. Query is modified some more.
5. Query is executed and beforeFind is not triggered before the query is executed as the docs state.