Moved unit test to live with the class.
Renamed class to make way for an interface.
Changed use a single resource object to represent the locally cached meta-data artifact to be parsed.

- RepositoryArtifactCache returns a LocallyAvailableExternalResource
- Changed the meta-data parser interfaces to accept a LocallyAvailableExternalResource, rather than the local resource and the original external resource.
Added some int test coverage for error reporting when a meta-data artifact cannot be parsed.
Added some context to meta-data parse errors.

- Replaced ParseException with new MetaDataParseException.
- Wrap all parser failures in a contextual exception.
Cleaned up some error handling in the pom parser.