Fix segfault when not using trampoline
Fix the enable -> disable -> stop profile case

The trace file must always be closed, not just when tracing is enabled at the
time profiling is stopped.
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.
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 we 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 support 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.
Add csnappy sources "stolen" from Sereal repository