Adding support for service factories in IServiceDescriptor

Fixes #64
What if the _configuration object defines a replacement implementation type? I know that the Describe call is for an instance, but before this change we would have specified the type as well. This would have left us with an invalid IServiceDescriptor, so who knows what would have actually been used.

I think we should consider calling `Describe(Type serviceType, Type implementationType, LifecycleKind lifecycle)` if _configuration defines a replacement implementation type. Whatever we decide, I think we should do the same thing for the Describe overload taking a factory.