UniValue: fix major bug, add unit tests

All numbers were broken, due to lack of an underscore.  No wonder my all-tree conversion to UniValue was failing its tests.

I'd write this as CHECK(numTest.SetNumStr("82"));