Move secure field generation into the widgets.

Doing this solves a few problems with FormHelper and the widgets.

* Widget logic was re-implemented in the helper (date/datetime).
* Userland widgets have no way of creating multiple secured inputs.

This change also cleans up the FormHelper internals a bit which is
a nice side benefit.
Add afterRender hook for widgets.

Give widgets that implement the afterRender hook a callback to add
script or css files, or just let them manipulate the view.
add 'atomic' option to "save()" API

This commit adds a transaction context to 'save()' API in order to rollback
possible modifications done in some 'Model.beforeSave' listener callback.
This will allow cakephp 2.x to behave like 3.0 .
It uses try/catch to better handle transaction.
Previous save() API is renamed to protected _doSave() method.
A new save() method is created for transaction handling.
'atomic' option is disabled for internal 'save()' call.
Move existing flash methods into Flash component/helper
Add FlashComponent tests
Add FlashHelper tests
Fix API docblock CS errors.
Merge pull request #3640 from cakephp/api-doc-comments

Fix API docblock CS errors.
Add ability to pass exceptions as flash message
Move positional params into options array
Update flash tests for options array
Add once option to css().

The default value is false for backwards compatibility. In 3.0, the
default will be made consistent with script().

Refs #1973
Refs #3628
Add call magic method for verbose calls with elements with flash_ prefix
Add docblocks to flash methods
Update flash plugin element docblock
Add flash_helper element
Fix doc comment errors in Acl classes.
Fix the test suite package doc block errors.
Merge pull request #3645 from cakephp/api-doc-comment

Api doc comment
Merge pull request #3604 from Haititi/2.6-save-atomic

2.6 add 'atomic' option to "save()" API - delivery