Lots of miscellaneous cleanups/fixes

Lots of general cleanup here of things that I've come across.

The biggest change here is that it updates the api of \<base/shutting_down.h> to be more comprehensive, which will be used for fixing #225

Unit test behavior is changed slightly (An exception doesn't end the running of the test, just the fixture).

This set of changes makes it so that any time orlyi or a unit tests exits non-cleanly they print backtraces, which helps in debugging otherwise hard to track down one-off issues, as well as alerting when we accidentally don't shut down cleanly (Which was happening some places).

Fixes #236
Shouldn't return here. `GenBacktrace` seems to take a `std::function<void (const string &)`