Move class creation to their own classes.

A lot of code that used to be in TyphoonFactoryProvider is now in
TyphoonAssistedFactoryCreator and its subclasses (one for one factory block,
one for a definition block, and one for the future implicit with a result
type).

The subclasses are supposed to generate a block that returns a
TyphoonAssistedFactoryDefinition, which the super class will use in case the
class doesn't exists yet (using a block to not instantiate the definition
eagerly).

TODO: the implicit creation strategy.

(jasperblues/Typhoon#102)
Split TyphoonFactoryProviderTest too.

(jasperblues/Typhoon#102)
Some fixes to compile in OS X and iOS standalone targets.

Recover libxml headers in OS X target. While including libffi as Cocoapod I
must have forgot to include this back in the OS X target (it is there in the
iOS target).

A couple of imports to avoid warnings and to correctly compile in iOS.

Marking the temporal allocations array of the closure as unused and with
precise lifetime. The unused is necessary to avoid a warning, the precise
lifetime might not be necessary, but I fear the optimizer might optimize the
variable away and break everything.

(jasperblues/Typhoon#102)
Implementation of implicit factory creator.

The method GuessFactoryMethodForProtocol moves from the OneFactory to the base
class, since the implicit creator also needs it.

The _protocol ivar moves from the @private to @protected in the Private.h
header, so the implicit creator can access it.

(jasperblues/Typhoon#102)
Factory Creator Implicit tests.

Added a bunch of bogus init methods to the PaymentImpl, to better test the
guessing of the initializer for the factory method.

(jasperblues/Typhoon#102)