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.
Not sure the level of abstraction's quite right - you can do this:

```
builder.Register(c => new Foo())
  .OnActivating((c, e) => e.Instance.SomeProperty = c.Resolve<IBar>());
```

Although it looks different on the surface, this is not really materially different in needs or capability to using `ReflectionActivator` - it's just "hand coding" the interactions with the instance being created.

Anything that extends the capabilities available to reflection activated components should probably be available to delegate registrations too.