Added 'injectProperties' to allow injection of externally created objects.

It would be really good to be able to use Typhoon with ViewControllers and Storyboards. Unfortunately UIStoryboard creates view controllers and this can't be overridden. The next best thing is to inject the properties of the view controller.

So adding an injectProperties now you can do something like this:

```objectivec
[_componentFactory register:[TyphoonDefinition withClass:[Knight class] properties:^(TyphoonDefinition* definition)
    {
        [definition injectProperty:@selector(quest)];
    }]];
[_componentFactory register:[TyphoonDefinition withClass:[CampaignQuest class] key:@"quest"]];
    
Knight* knight = [[Knight alloc] init];
[_componentFactory injectProperties:knight];
    
assertThat(knight.quest, notNilValue());
```

This means an extension of UIStoryboard can inject the view controller just after it is created.