Experimental circular dependency fix

Fixes https://github.com/jasperblues/Typhoon/issues/25.

I took the opportunity to clean up the code as I tried to understand it. In particular, handling assembly method calls and, to a lesser extent, constructing the instances. I think we're starting to see an opportunity for a few new abstractions down the line. For example, there are lots of cohesive methods in TyphoonComponentFactory(InstanceBuilder) that handle property injection. 

Passes all iOS tests, but the OS X tests crash in `-[CampaignQuest description]`. After I have a chance to look into and fix that, this should be good to go. You'll find a screenshot of the OS X tests crashing below. The stack trace is not stable across runs, so definitely a memory issue.

Let me know what you think!

![a memory issue with os x tests](https://f.cloud.github.com/assets/1849147/873390/3c94151c-f876-11e2-9fd7-48476c369736.png)