Basic implementation of saving associations.

There is a bunch of duplicated code right now that needs to be cleaned
up still.
Refactor duplicate code into protected methods.

Move duplicated code into protected methods. Fewer LOC is generally
easier to maintain.
Update api docs and add test for exception case.
Make the return values consistent in Associations methods.

Having mixed boolean/entity return values makes the interface a bit
confusing. I'd like to try and have consistent return types if possible.

Do some tweaks to the tests for this change, update failing tests in
BelongsToMany. Making Associations::add() return the added object allows
Table to use fewer lines of code and keep its existing behavior.
Fix remaining failing tests in Table class.

* Fix broken return values.
* Fix recursion issues with associated saves.
Add method for getting associations by type.

A similar feature is used in bake & formhelper, I'm guessing we'll need
it again with the new ORM.