expose convertValue in JsonUtil, clean up tests

This also makes it so that all of the JsonUtil tests use implicit wrapper methods instead of the JsonUtil object methods, so that we're always testing through those instead of having a basic little test at the end that does so.
This is the real meat of what I'm adding here, and is what I need elsewhere. This is how you perform secondary conversion in Jackson, for the case of polymorphic JSON objects, for instance.