Fix loss of precision when mapping large 64 bit integer strings to numer...

...ic types

We are using 64 ints as IDs in our backend system passed as strings in JSON. For sufficiently high values these IDs were being altered due to the fact that they were being constructed in an NSNumber as doubles rather than long integers. 

This pull request fixes the issue while retaining support for doubles represented as strings. See added unit tests for example of a breaking case.