Added NSValueTranformer and reverse transformer capabilities for relationships. Added method - (NSPredicate)managedObjectUniquingPredicate: to MTLManagedObjectSerialization.

```managedObjectUniquingPredicate``` is used in ```managedObjectFromModel:insertingIntoContext:processedObjects``` to attempt to find a managed object that already exists by executing an NSFetchRequest with the provided NSPredicate. It will attempt to fetch this managed object before converting the MTLModel subclass into an NSManagedObject. If a managed object is found then the method will set the values from MTLModel to this discovered managed object instead of creating a new one, otherwise the method will proceed like before. 

This request also includes ```relationshipModelTransformerForKey:``` which acts similarly to ```entityAttributeTransformerForKey:```. If a relationshipModelTransformer is described (whether forward or reverse) it will use this to transform between a model and a managed object.

Closes #114