Xml lang support

This pull request fixes a bug in MetadataParser.parseElement and adds a new MetadataSearch which is able to handle more complex oai scenarios.

To implement this and keep using the MetadataSearch interface the API needed to change - MetadataSearch now needs a generic parameter that defines which type of result it returns.