Fix EntityContext operations on collections.

There were a few cases where EntityContext would hit a fatal error when
dealing with collections/arrays. This fixes that and also introduces
a minor optimization for array properties.
Merge branch '3.0-collection-context' into 3.0-hidden-input
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().