End date error scenarios

Expand error scenarios for end date and refactor validation error checking in feature tests.

Introduced 'validation_errors_from_document' so we can assert error messages. I would prefer to use classes for each error to be honest.