Add Table::findOrNew()

This method lets you easily find an existing entity or generate a new
entity with the chosen properties. In addition to finding entities, it
lets you patch/set additional attributes on the found/created entity.

Refs #4631
Fix up doc block.
Update code to create and save entity.

The additional defaults are no longer applied to existing entities. All
entities returned from findOrCreate() will always be persisted.
Use a callback in findOrCreate instead of an array.

Using a callback to set additional defaults gives more flexibility
and control to application developers around how to configure new
entities.
Add additional test for findOrCreate()

Show that the callback is optional.
Always return an entity.
Disable mass assignment protection when using findOrCreate().

We'll assume that the find parameters are intended to bypass
mass-assignment restrictions and always be assigned.
Merge pull request #4679 from cakephp/table-find-or-create

Add Table::findOrNew()