added ComponentFactories and a general Registrar
The Registrar can be used to register any mapping form a key thype to a value type. This mapping is available in a static global map and can be used e.g. to implement ComponentFactories
ComponentFactories can be used to register a component with a name. This name can be used during runtime to map the string to the component's type and create an instance. (similar to the ice object factories)