Rework kore_strtonum64() so we can catch overflows for u_int64_t.

Seems that strtoull() if a negative string is supplied rather just
wraps the value, which I don't want here.