Simplify ValidationResult by removing the valid field.  We can just
check the number of error messages instead.
Have both Validate() functions return a *ValidationResult instead of
ValidationResult in order to avoid copying
Have CopyErrorMessages() and CopyErrorMessagesWithAnnotation() take
another *ValidatationResult instead of a slice of error messages.
This is in preparation for validation scoring where a score will be
added from the other ValidationResult when error messages are copied
over.
rename CopyErrorMessages() and CopyErrorMessages() to Merge() and
MergeWithAnnotations(), respectively
Add better error messages during failure of an anyOf or oneOf by
copying the error messages from the best matching subschema.
Merge remote-tracking branch 'tolsen/better-anyOf-oneOf-error-messages'

Conflicts:
	validation.go