Issue127: Introduce MetadataExtractor

Extracts metadata according to a json configuration from a componentTree
I agree, I changed this a few times around. Since the extractor is initialized in the constructor its present can be assumed