If the request is not api - remove other event listeners

Don't detach the beforeHandle event otherwise there's no log that the
Api listener was ever listening
Adds listener to make API output consistent with other popular APIs.

This listener does three things:

- Nests data of associated data properly under the primary record.
- Converts camel cased model names to singular/plural keys.
- Casts values from strings to their proper datatypes.

Examples of popular public APIs are Twitter, Google and GitHub.
Unfails test case.
Removes double newline.
Renamed PublicApiListener to ApiTransformationListener.
Allow user methods for keys and values.
Fixes PHPCS error.
Removes newlines.
Changes event to Crud.beforeRender().
Merge pull request #88 from FriendsOfCake/feature/bail-early

API - bail early
Changes the way API requests are handled.
Fixes typo.
Adds test for empty hasMany data.
Adds comment about overwriting keys on equal names.
Minor optimization.
Makes key changing smarter by using associations.
Optimizes replace map generation.
Adds additional tests.
Settings documentation.
Moves all App::uses() calls to the top of the file.