Json: signed and unsigned versions of the same int compare equal.

Json((int) 77) == Json((unsigned) 77).
Add some Json tests.
Only explicitly unsigned-type Jsons pass is_unsigned().

This seems more likely to be what a user would expect.