Injections define a property, fixes #2022

Prior to this PR if we define an injection on any controller which might become `ObjectController`, the injection will be delegated onto it's content, even though we're actually injecting the controller.

This PR introduces a hook which allows us to define a property prior to the injection, which solves the issue, because `ObjectController` doesn't delegate properties which are already defined on it. See #2022 for the issue discussion.