Add Json::is_posint().

Json::is_unsigned() means, literally, This Json is unsigned
(was constructed from an unsigned type).
Json::is_posint() means This Json is unsigned or positive.
In msgpack encoding, it is not always smart to preserve signedness
through the encoding---specifically, consider 0; the one-byte encoding
of zero is nominally signed, but one really wants to use it for
unsigned ints too. (Either that or it is nominally unsigned and one
wants to use it for signed ints too.)