Make Array Validator Strict

## Make Array Validator Strict

### Acceptance Criteria
1. `AbstractArrayValidator::validate()` does not explicitly try to allow fields to pass through which are not defined in `getConstraints`.
1. `AbstractArrayValidator::getOptionalConstraints` no longer exists; constraints in `getConstraints` must be wrapped in the `Optional` constraint instead.

### Additional Notes
In #38, the `AbstractArrayValidator` was made to allow any fields to pass through that were not defined in `getConstraints`. The purpose: to create a way for "optional" fields to exists. This conflicts with the `getOptionalConstraints` method. Neither are necessary; children of `AbstractArrayValidator` can simply use the `Optional` constraint on a field.