Adds mapping inversion for dynamic mappings

I had a hard time coming up with a solution to implement this cleanly, without either changing the existing api or adding new puplic methods / exposing private methods. I decided the latter would be the lesser evil.
Basically I just moved RKMappingInverter into it's own file and added some code to handle dynamic mappings.

Caveats:
* I didn't implement unit tests. Sorry, I know I should have, but I'm on a deadline
* I didn't test mapping inversion with predicates at all

IMHO it would probably be nicer to let the different RKMapping subclasses invert themselves and get rid of RKMappingInverter all together. Maybe this could be done with something like
```-(RKMapping *)invertMappingWithExistingInverseMappings:(NSMutableDictionary *)invertedMappings;```

Also, I think the method signature ```-inverseMapping``` is not ideal, since it is not general and really only works in one direction (since it always creates a dictionary class mapping).