New classes for representing validation errors

Specifically, BagValidationFileError (for representing info
about an individual file that failed to validate) and
BagValidationErrorSet (for representing a collection of
error objects generated by a validation run).

These classes amend/replace the ManifestError and
ChecksumMismatch classes from recent commits.