Add a new tag to store source code (for eval "")
Add a new '-source' option, to selectively save source code in the trace file
Add option to collect the source code for all evals that have at least one sample
Add option to collect the source code for all evals
TODOne
Preserve errno if timer thread creation fails
Set timer thread as detached, so it frees all associated resources on termination
Only set the "runloop entered" flag if the full setup succeeds

Otherwise code in $SIG{__DIE__} invoked by the croak()s in enter_runloop()
thinks it's trying to re-enter a running runloop.
Fix create_trace() for the case where the trace is there but the file has been closed

For example if child_after_fork() fails between the close() and
reopen_output_file() calls.
Test that ww can read/write very long strings

Cheating a bit because it uses eval "" that is only tested later in the test suite.
Prepare to add supprt for output compression

Instead of calling stdio directly, read from/write to an intermediate buffer
that is going to be compressed before being written out.
Make flush()/shut() no-ops if the output file has not been opened
Do not flush the output file from shut()

Since the filehandle is supposd to have just been flushed from the parent
process, there is nothing here to be written to disk.
Add csnappy sources "stolen" from Sereal repository
Rename this to this_ to make csnappy compile as C++
Compress trace data using snappy

Uses the simplest approach possible, just compressing each buffer when it is
flushed.