Start hidden and add array casts to fix issues with mocks.

Mocks return null. Having an array cast smoothes over PHP warnings.
Start updating hidden() and initInputField.

Start updating hidden fields and initInputField to use the new widget
system and context classes.

Move 'form-error' into a setting. We've had a number of debates around
this, and I don't think I'd like to have more of them in the future.
While we can prescribe 'error' or 'form-error', giving a tiny bit of
config is not going to end the world.
Fix additional errors in hidden().
Add additional tests for hidden input.
Merge pull request #2824 from markstory/3.0-hidden-input

3.0 hidden input