Issue127: Introduce MetadataExtractor

Extracts metadata according to a json configuration from a componentTree
I wouldn't make that check either given the current setup.
@marcbachmann but the claim that it is always there is wrong. You can externally set it to undefined via `extractor.metadataExtractor = undefined`