Added CollectionInputFilter
Added tests
Update BaseInputFilter If value is required, it must be set in $this->data[]. If the value is set and it should not be empty, it must be invalid, even if not required.
BaseInputFilter fixed
Implement feedback
Fix array_fill error
Merge branch 'hotfix/3983' into develop

Forward port #3983
Fix failing unit tests

- Addition of #3893 into develop broke test assumptions in #3879
  Basically, an empty string indicates a value was passed;
  one input, while it was marked as not required, was not marked as
  allow empty, and thus a validator that checked for string length
  failed. Changing the input to allow empty made the tests pass again.
- The question is: if a value is not marked as required, but has an
  empty string passed, should we pass it to the validator?
Fix failing tests in Zend\InputFilter

- Cleaned up BaseInputFilterTest to use a data provider; makes isolating failing
  cases simpler.
- Rewrote logic in validateInputs() to capture discrete use cases; more verbose,
  but easier to determine what is happening.
- Made executive decision: non-required input that is empty is valid.