improve I/O logic and tests

Test a larger corpus by using a test program with more complex stack

Accept one shell command per line of input. The shell splits up command
lines for us. This requires each line to begin with `exec`, which is
less inconvenient than lexing argument strings ourselves.

Ease visual alignment of the output display by adding a dot grid.
tracer: call unw_strerror correctly

libunwind confusingly returns the _negative_ of the error codes
it defines, presumably on the assumption that a nonnegative error
code implies success. But the unw_strerror function expects the
inverted values, so the caller doesn't have to invert them.
node: add node_dump function

The full tree view is more useful than printing only the crash sites.
README.md: give credit where due