Fix up usage and tests, split into multiple files.

Doing this in multiple commits in an attempt to preserve the file movement history.
Add crash handler bypass for testing.