Factory method creation from initializer description (final?)

Create separate file for TyphoonAssistedFactoryMethodClosure.

Validation of initializer and parameters during the construction of the
closure. Should catch some typing mistakes.

Use parameterIndex instead of the iteration index for filling the arguments of
the closure.

Fix a leak in typesWithEncodingString:count:. Use allocate: instead of calloc.

Use the factory method name instead of the selector name to create the keys
for the closure cache. You can have several factory methods calling the same
initializer, but only one factory method definition.

Added more complete TyphoonAssistedFactoryMethodClosureTest, testing
invocation with parameters and properties more or less in isolation.

TyphoonFactoryProviderTest duplicates the protocols before using them, so the
factory implementations are different for blocks and initializers. There is
a new test that does the same as the blocks one, but with initializers.

(jasperblues/Typhoon#102)