Remove param $confirmMessage.

You can set the confirm message using 'confirm' key in options.
Remove $confirmMessage param.

Confirmation message can be set using 'confirm' key in options.
Document 'default' option.
Remove "default" option from HtmlHelper::link().

Adding js code to prevent default behavior of link by itself has little value.
Update bake templates.

Now using 'confirm' key in options for FormHelper::postLink()
instead of removed param $confirmMessage.
Cleanup Security::hash().
Change default value for Security::$hasType to 'sha1'.

Security::hash() defaulted to 'sha1' anyway.
Making Table::columnType() a setter too
Adding a new method Table::_initializeSchema that users can override
Added test for _initializeSchema
Removed whitespace
Fixing test
Remove blowfish hash generation support from Security::hash().

You should use password_hash() / password_verify() instead.
First pass at splitting up the Router internals.

ScopedRouteCollection has a few too many jobs. It handles both the
building of routes and part of the route parsing/matching. Having the
parsing/matching spread between two classes is a bit gross and indicates
there is a missing class. Separating the building + parsing/route
storage makes a nice break that allows each class to handle one group of
tasks. This division also cleans up Router which is nice.
Only sort routes when new paths are added.

Remove complexity and nested statements where possible.
Remove sprintf() calls.

The extra loop and function calls aren't necessary.
Further cleanup and test expansion.

Clean up the last bits and finish off the tests.
Stop inflecting prefix.

Inflecting prefix causes issues with reverse routing as prefixes are
always connected as snake_case versions. Inflecting on parse/match
causes match errors.

The ControllerFactory changes are required to make namespaces match
correctly.
Merge pull request #3886 from ADmad/3.0-security

Cleanup Security::hash().
Fix failing tests around prefixes.

There were commented out tests for prefixes + controller routes. Using
a prefix should create more specific route names that match earlier
preventing names like `users:_action` from matching.

* Fix up name generation for plugin/prefixes with 0 as a name.
* Remove bad Controller test for prefix.
* Remove duplicate route prefix test.