3.0 Start updating FormHelper

As part of #2267, this is the first set of changes to FormHelper. I've started with create() and will continue a few input types at a time until I'm finished.

This set of changes integrates the context classes and input registry with the FormHelper as well as adds the StringTemplateTrait in. I've also removed some magic from FormHelper. The following magic things have been removed:

* Creating a form for a Model does not default to that model's controller. The current controller is still used.
* The PUT/POST method switches on the context having a value for the primary key only now. Previously it used the primary key value & whether or not you set an action which was a bit silly IMO.