Fix bug in injectProperties when dealing with subclassing

https://github.com/jasperblues/Typhoon/pull/15 has a bug where Knight would try to be injected with definitions from CavelryMan and CavelryMan would not be injected with definitions from Knight.

I've fixed this and added a unit test.

However it does raise the question what should be injected when there is a definition of quest that is different for CavelryMan and Knight? I would expect CavelryMan definition to override the Knight definition however currently it is last definition wins.

How does Typhoon handle this normally?