Add a null caching engine.

Having a NullEngine makes a bunch of internal operations simpler as we
don't have to check whether or not the engine() method returned an
instance or not. It also makes it easy to use a null adapter in testing
without having to generate mocks.
Fix typo
Update docblock.
BelongsTo associations are safe to bake even for composite keys

Fixes #4318
Merge pull request #4297 from cakephp/null-cache

Add a null caching engine.
Fix up patch not being supported by edit in baked controllers.

Fixes #4284
Merge remote-tracking branch 'origin/3.0' into 3.0
Merge branch '3.0' of https://github.com/cakephp/cakephp into 3.0