Support values between [0, 2^63]

The current numeric parser behavior will not allow a value of 2^63 because it assumes that all integers will be signed.  This change promotes non-negative numeric values to an `unsigned long long`.

Example:

```python
>>> str_63 = '{"id": %d}' % 2**63
>>> str_64 = '{"id": %d}' % 2**64
>>> import ujson
>>> ujson.loads(str_63)
{u'id': 9223372036854775808L}
>>> ujson.loads(str_64)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Value is too big!
>>>
```