Improve Validation Scaffolding

## Improve Validation Scaffolding

### Acceptance Criteria
1. `AbstractValidatior::validate()` wraps the constraints in an `Assert\Collection` object so that the results contain the array key in each violation.
1. Helper method exists in AbstractController to turn a `ConstraintViolationListInterface` into an array as such:
```
{
    "field1": [
        "An error message.",
        "Another error message.",
    ],
    "field": [
        "An error message."
    ]
}
```