Fix wrong length value for uint64's

The return value of ```strtoull()``` is unsigned and 64bits, yet it would set its length to 128bits if it were larger than ```INT64_MAX``` (which ```UINT64_MAX``` is). So this just always marks it the same length.

This caused issues later when it asserts that the length is that of ```uint64_t```