Fix comment
Fix broken code keeping track of nested runloops

Since runloops can be exited via longjmp, and RAII+setjmp is not portable (f.e.
Visual C++ supports it, GCC does not), use Perl XCPT_* macros to handle the
in-tracing-runloop flag.

This loses the check in switch_runloop(), which was only partial anyway, since
only the tracing runloop kept track of runloop levels, and switching from
non-tracing to tracing runloop inside an inner runloop causes the same set of
issues.
No need to use gettid(), especially since it's not portable
Skip shardedkv benchmark when ShardedKV is not installed
Ignore the various (MY)META.(json|yaml) files
Add missing build requirements
Avoid undefined variable warning
Fix test failure when NYTProf (and hence flamegraph) is not installed

Since flamegraph is only necessary when actually generating the flame graph,
allow aggregation to proceed and only die when creating the flame graph.
Work around a 5.14 (and maybe 5.16) parsing oddity

The __LINE__ token in the BEGIN block gets expanded to the last line of the
heredoc rather than the first as it is in 5.18.
Add basic tests for programs embedding Perl
Fix exception handling code to work in embedded Perl interpreters

It turns out the XCPT_ macros described in perlguts ony work if the code
potentially croak()ing is not a runloop call; for that case we need the full
handling code (taken from S_docatch in pp_ctl.c).

This fixes C programs embedding Perl, calling call_sv() from the top level
without the G_EVAL (tests added in the previous commit).
Don't crash on COPs with NULL CopFILE
Allow sampling intervals greater or equal than one second
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