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).