Start the ArrayContext.
Start implementing ArrayContext and some tests.
Build remaining methods on ArrayContext.
Add error() and hasError()

These are important features for generating validation messages.
Doc block fixes.
Merge pull request #2754 from markstory/3.0-form-context

3.0 form context