Adding support for service factories in IServiceDescriptor

Fixes #64
I think now is a good time to consider adding an enum to `IServiceDescriptor