Fixed bug when firstly allocated instance released twice in some class clusters

See #138 for details
Merge commit '2ac86efa41523b3705395e726683df5e6883c54c'
Update headers
Code formatting. Update podspec.
Update podspec.
Update podspec.
Update podspec.
Update podspec.
Update podspec.
Add test pods.
New (internal) hook for property injections.

TyphoonPropertyInjectionInternalDelegate exposes a new hook for property
injections, in which the target instance will be asked if the injection
should proceed or not.

Instances can implement the hook and perform the injection themselves (using
the value provided by the InstanceBuilder or whatever they please).

Relates #145
Lazy dependencies for factories from the factory provider.

TyphoonAssistedFactoryBase uses the new shouldInjectProperty:withType:lazyValue:
to store the lazy value block in its internal map, and telling Typhoon to not
inject the property.

The creation process no longer creates the setter (not needed anymore), but
creates an ivar for each property (same name as the property).

Later, when the getter of the property is invoked, if the ivar is still nil,
the lazy value block is invoked, saved into the ivar and returned to the
caller. The properties are synchronized to avoid two threads creating the ivar
at the same time.

See #145
Update Pods.

See #145