Allow chaining in the addCrumb method

For convenience I think it might be valuable to allow addCrumb (and possibly other similar functions) to return $this to permit chained calls such as this:

    $this->Html->addCrumb('Admin', '/admin')->addCrumb('Blogs', '/admin/users')->addCrumb('Add');

as opposed to the considerably more verbose version that needs to be used now:

    $this->Html->addCrumb('Admin', '/admin');
    $this->Html->addCrumb('Blogs', '/admin/users');
    $this->Html->addCrumb('Add');

I'm not sure if this violates some API conventions for helpers but it does seem rather more convenient to work with to me.
Update HtmlHelper.php

Updated documentation to include the chained $this return
Add TypeMap for expressions
Pass TypeMap to query expressions
Fixed remaining unit tests
Fixed types being overwritten
Fix CS issues
Cleanup tests
Don't do an assignment on every call
Refactoring canBeJoined so it is more dynamic
Moving the abstract method requirement for eagerLoader to Association
Moving the docblock to a common place
Moving some code to a new trait
Consolidating common code
Fix yoda condition in File test
Merge pull request #3186 from bcrowe/hotfix-yoda-test

Fix yoda condition in File test
Remove DbConfigTask.

This task does not work well with either the new world of configuration
or the non-interactive features of bake. Removing it feels like the best
option right now.
Update BakeShell.

Update bakeshell to use new task code and simplified internals.
Update bake menu.
Cleanup after removing DbConfigTask.
Implemented the select and subquery strategy for BelongsTo
Fix build failures.
Fixing select strategy for BelongsTo when the source table has composite
primary key