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 an managed object that already exists for the predicate 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.

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.