introduce the Generic PuiceFactory
add test to proove if it's possible to let the factory create itself
introduce Puice/Config and Type interface