Change some core mapping methods (in particular the per-attribute code) to use local variables instead of re-calling methods several times.  Any code called per-mapped-attribute is in the biggest hotspot of the mapping process and gets called a large number of times, to the point that avoiding unnecessary ObjC method calls begins to be noticeable.  So, for some of the core mapping methods (attribute ones in particular), use some local variables instead of re-calling methods on RKAttributeMapping, and similar things.
Merge pull request #2086 from carllindberg/2065-MapAttributeLocalVars

Use local variables to avoid repeated calls to methods
Instead of merging dictionaries, keep a list of separate metadata dictionaries and implement valueForKeyPath: to iterate through them.  This is a bit more substantial change, and one situation may still be a bit inefficient -- when creating a parentObject for a deep hierarchy, we need to create some standin objects which implement valueForKey: the same way, rather than intercepting at the RKMappingSourceObject class.  Not sure if there is a way around that.
Further speed changes; the creation of the metadata dictionaries is fairly expensive; a specialized object can be faster.  Also, it allows us to create just one and re-use the instance whiel iterating over a to-many relationship.  Secondly, the metadata used for a to-one relationship is constant, so can be a static instance created just once.  Refactor some of the code used in the previous commit and document new public methods.