Add table methods to hydrate entities from request data.
Skeleton of marshaller.

Add safe mode as I hope to re-use the same marshalling code for building
enities from statements as well as building entities from request data.
Janky start to marshalling simple + associated data.

I need to solve the conventions around this a bit better as right now
it is awkward to use. However, hasOne/belongsTo is working.
Expand docs for marshalling methods.
Add constants to check the type of association.

Knowing whether an association contains one or many rows is useful for
hydrating data into rows.
Basic implementation of Marshaller::many()

Add tests for many to one marshalling.
Fix incorrect doc blocks.
Safeguard against bad developer input.

Don't try to recurse into associations that may not be defined.
Add additional tests for marshaller.
Cleanup and simplification.

Fix things found in review.
Allow top level array containing a table name.

CakePHP has in the past added the top level model name to the POST data
as a container. Be compatible with that convention as it is still kind
of useful.
Marshal data based on entity properties.

It is far more intuitive to marshal data based on the entity properties
instead of the association names. Rework the code so that is how it
works. The includes array is still association names, so that it is easy
to generate based on the associations a table has.
Merge pull request #2480 from markstory/3.0-marshal-entity

3.0 - Create entities from arrays