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.
Remove Widget::afterRender()

After some discussion, none of us could come up for a reason for it to
stick around.
Merge pull request #3658 from markstory/3.0-widget-improvement

3.0 widget improvements