Infrastructure components

Solution for #20

Summary
* Added a TyphoonComponentFactoryPostProcessor protocol in Factory/Config as the first 'infrastructure component' marker.
* deprecated TyphoonComponentFactoryMutator and migrated the Patcher and PropertyConfigurer to use the new protocol. Still backwards-compatible.
* Pick up infrastructure components in -register: and apply when the factory is loaded
* Infrastructure components are instantiated instantly once registered
* Added TyphoonDefinition+Infrastructure and <property-placeholder> tag for short-hand declarations.

Issues / Extensions
* Since the components are instantiated when registered they cant have dependencies on other components in the factory. Not sure how or if this should be handled, there could be some pretty strange cases appearing if going down that path.
* There could be a good idea to introduce a TyphoonOrderedComponent protocol if, for instance you'd want infrastructure components to be applied in order.

All this heavily influenced by Spring framework.