[zen-46] Created Input interface and implementation

- Wrote tests describing behavior
- Wrote interface for Inputs
- Wrote implementation for Inputs
- Wrote initial tests for InputFilter
[zen-46] Identified all tests for InputFilter, Factory

- Identified unit tests for InputFilter
- Identified unit tests for InputFilter Factory
[zen-46] InputFilter tests

- InputFilter tests are mostly complete. Incomplete tests include:
  - conditional validation (i.e., only validate if another input
    passed/failed/is present, etc)
  - ability to pass context to validators
  - Skip validation of fields marked required when no data is present
  - skip validation of required fields when allow empty is true and no
    value is passed
  - invalid data on to required fields when allow empty is false and
    no value is passed
Added break-on-failure, error-message fields to Input

- Added breakOnFailure flag
- Added errorMessage string
- Added more tests to InputFilter suite
Fleshed out remaining use case tests for InputFilter
Created InputFilterInterface

- Created InputFilterInterface based on test cases
- Marked one test with a todo -- questioning whether we should change
  the name on an Input, or simply store a hashtable internally
[zen-46] initial implementation of InputFilter

- adding/retrieving input objects
- setting data to validate
- partial isValid() implementation
  - fails tests
  - raises questions about nesting input filters, how to mark empty,
    required elements as invalid so as to receive a message
[zen-46] completed input retrieval

- Completed get(Raw)?Values?() implementations
- All tests now run; failures are for unimplemented functionality around
  partial validation, contextual validation, and retrieval of
  valid/invalid values and error messages
[zen-46] implemented capturing of valid/invalid inputs
[zen-46] Implemented getMessages()
[zen-46] Implemented partial validation
[zen-46] Allow passing context to validators

- Primarily a change in the ValidatorChain, but also a small signature
  chain to the Callback validator to make it clear that context can be
  provided (implementation would already use it)
[zen-46] Added todo item

- How should we deal with required input when data is missing?  should a
  message be returned? if so, what message? Does any message need to be
  returned, as getInvalidInput() will return this input anyways?
[zen-46] Completed factory implementation

- Allows specifying a default filter chain and/or validator chain for
  elements it creates
- Allows creating input objects from specifications
  - Allows creating filters from specifications
  - Allows creating validators from specifications
- Allows creating input filter objects from specifications
- Allows creating nested input filter objects from specifications
- Updated FilterChain to be Pluggable
- Updated ValidatorChain to be Pluggable
[zen-47] Created form, fieldset, and element interfaces
[zen-47] Removed old form artifacts
[zen-47] Implemented concrete Element class

- Created test cases for Element behavior
- Created initial concrete implementation of Element
[zen-47] Added name support to elements
[zen-47] Initial tests for Fieldset

- Created initial round of tests for Fieldset
- Altered interface slightly based on usage desired
[zen-47] Completed Fieldset tests

- Completed all behavior use cases