Allow "C" tests to run multiple test subroutines
Fix for applications embedding Perl and not using the trampoline runloop

If the application uses call_sv to call its callbacks, one of the callbacks
might enable the tracing and leave it enabled on exit, to trace subsequent
callbacks.

This change fixes the fact that tracing was not enabled when re-entering a
callback, and that calling disable_profile would exit (because it tried to do
the runloop switch dance by returning NULL as the next op without a caller able
to handle that).
Simplify aggregator code

Remove per-line inclusive/exclusive sample count for subs, and create per-file
objects while processing subs and not as a post-processing step.
Small refactoring
Check the report is only finalized once
Use 0 as the default parent ordinal

Works as well as -1, since ordinals start at 1, and avoids the need to use
signed integers for ordinals.
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.
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.
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.