Fix JSON parsing of large unsigned 64-bit integers

There was an issue when parsing a large unsigned 64-bit number in JSON.

e.g.
```
{ "test" : 18446744073709551615 } // a.k.a. UInt64(-1)
```

I had to add 2 more virtual methods to JSON::Handler to support unsigned and UInt64, but it seemed like a reasonable fix all things considered.