3.0 widget improvements

Implements the changes described in #3613. Notably adding:

* An `afterRender()` hook to widget objects.
* Refactored secure field list generation into a widget feature over a FormHelper feature. This has made FormHelper quite a bit simpler and resulted in more powerful widget classes :metal: