Start preparing FormHelper tests to be rebuilt.

I'm planning on tackling the FormHelper tests one method at a time.
Keeping the old tests skipped until all the cases have been accounted
for will help ensure new regressions are not introduced.
Add test stub methods.
Add skeleton methods for widget features.
Add missing errors and type checks in InputRegistry

Providing string classnames should work. If an object is provided it
should be checked for the correct interface.
Start integrating the context classes into FormHelper.

Add several new methods that allow the various context classes to be
used by FormHelper. This also removes some 2.x legacy code that will
inevitably break existing tests & code.

A few TODO's are in the commit as I didn't want to make it even more
enourmous.
Add tests for context detectors.

Move code around and add tests for the default context classes.
Very basic FormHelper::create() test is passing again.

FormHelper doesn't need to add ID's to every element it creates.
Removing id generation on form elements reduces the chances it will
create duplicate ID's requiring developer intervention.
Move create() tests closer to the other create() tests.
Get a few more create() tests passing.

Get a few more test cases passing.
Fix a few more tests.