Implement support for flexible metdata mapping. closes #582, #688

* Metadata mapping is implemented via an `NSProxy` object that stands in for the `sourceObject` of each `RKMappingOperation`
* Key paths that are prefixed with `@metadata.` are mapped against the `metadata` dictionary of the operation, else they hit the `sourceObject`.
* Metadata is implemented by merging a dictionary of data in from `RKObjectRequestOperation`, through to `RKResponseMapperOperation`, into `RKMapperOperation`, and all the way down into the `RKMappingOperation`, where it is available to each object. By convention, metdata is namespaced into subdictionaries.
Integrate support for metadata mapping routing data. refs #1174
Fix crash when accessing a named route with no object for interpolation
Fix crash when attempting to map `nil` sourceKeyPath as identification attribute
Fix issue where repeatedly mapping a to-many relationship without identification attributes would cause the first object in the relationship to be inappropriately reused
Merge remote-tracking branch 'upstream/development' into development