Implement compression, fix SIGKILL, and other fixes

I'm not sure what's the best way to split this up into multiple PRs.
* The first few commits implement trace compression.
* 03fb84adf5e6a2a8158993f007b9a8083c9da826 makes rr work with Firefox in my 32-bit VM.
* The commits up to "SIGKILL tests" fix and test various SIGKILL scenarios.
* Commits after that fix some issues I found running the tests a lot.

There are still some issues with all these patches applied --- occasional 'multiple pending signals' assertions, and other weird things I haven't characterized yet --- but they only occur rarely when doing lots of runs of the test suite. For example right now I have had 27 consecutive successful full runs of the suite (and still going). So I think we should actually land these patches while we consider the remaining issues.

@cgjones, I'd love a bit of review here :-).