Unformatter - a reversible formatter!

Also changes JSON work to use jackson instead of doing it by hand.
Users can include their jackson version of choice to make use of it, should they desire JSON capabilities.