Created an IItemFactory, to enable IOC-scenarios

Added an option to create instances with a custom factorytype instead of Activator.CreateInstance, and created a default implementation that uses Activator.CreateInstance.
Default usages should remain the same, but now ioc-scenarios are enabled