Add docs for events.
Start tests for magic finder methods.
Basic implementation of magic finders.

* Support generating conditions based on method.
* Allow first and all to be used as find types.
* Allow 'and' and 'or' operators.
Add tests for applying an order with magic finder.
Throw exceptions when and & or conditions are mixed.

Previous implementations of magic finders would just do the wrong thing.
Throwing an exceptino feels safer and more explicit.
Rename magic => dynamic.
Remove ordering parameter from dynamic finder.
Use preg_match to allow all kinds of finders.
Merge branch '3.0-magic-finder' of github.com:cakephp/cakephp into 3.0-magic-finder
Remove find first from dynamic finders.

Instead you can call ->first() on the query object returned.
Add API docs for dynamic finder methods.
Cast the events before iterating it.

This prevents foreach errors when using mocks.
Make table objects event listeners.

Use the same conventions as behaviors for mapping event names to
methods. Table objects bind their events **after** the initialize
callback. This allows them to have the same sequencing as controllers
+ historical behavior.

Refs #2410
Merge pull request #2409 from markstory/3.0-magic-finder

3.0 dynamic finders
Merge pull request #2416 from markstory/3.0-table-events

3.0 table events
rename decorate results and decorate statement

in this way, decorateResults calls ResultSetDecorator, which is less
likely to be confusing, and _decorateStatement decorates a statement

closes #2413
Merge pull request #2417 from AD7six/3.0-rename-query-formatters

rename decorate results and decorate statement
Add method to Table to introspect loaded behaviors.

Add behaviors() and hasBehavior() to Table to allow introspecting the
loaded behaviors.

Refs #2304