Draft: Rototill to move to using lib_standard_app's io model
This invovles getting rid of all of the setjmp(3)/longjmp(3) and percolating errors around in the more idiomatic C way. We define a set of macros to make it all a little easier to keep track of.