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.
I think it's useful to people who would otherwise want to know what's happening with this method. One could just pull up the Jackson docs for ObjectMapper and see that `convertValue` is used for secondary processing. If you'd like, I can add a bit about that, too, but I would leave this note.