Better circular dependency handling

Better circular dependency handling so property injection ALWAYS works with circular dependencies and property injected classes are always properly injected prior to being passed to the constructor of a constructor injection. Hence you can have classes that use constructor injection that can use any instances with circular dependencies passed to them as long as they are using property injection.
I'm not so sure about allowing the `ResolveOperation` "know" about the activator types. It might be better to have some sort of property on the activator that indicates whether it natively supports property injection and just have the `ReflectionActivator` be the only one that returns `true`. Or something like that.