RepositoryObject parsers now assume that the file-extension of what they're parsing is correct, which allows us to deal with unknown extensions gracefully. Unified the parse() method to be passed a ValidationResult object that always contains a valid location