This first pass conversion uses a wrapper to keep mainline changes to a minimum, and keep the reviewable diff to a minimum.
Once it’s in good shape, the wrapper may be removed, and repetitive changes may be applied to the codebase.
Status: Does not pass some RPC money formatting tests.
Dependencies: #4730 (fix UniValue + add unit tests)