Added Mapping ability so key values can have different names to Core Data fields

Added Mapping ability so key values can have different names to Core Data fields.

All that is needed is the additional mapping NSDictionary to be passed it.

If no mapping NSDictionary is passed, reverts to standard behaviour.