Prevent the off-stack loop callback from working on expired call

This can happen when a deadlock is broken by the minder thread.
Configure flag --enable-debug

Also declared RUSTCFLAGS as a precious configure variable.
Cleaner logic in the call minder loop
Don't push our thread local context into the GLib context stack

g_main_context_push_thread_default() assumes that the context stays
acquired unless popped and releases it at the thread exit,
causing a fatal error. We want our thread-local context unowned
unless it is driven by our EventLoop, because the call minder thread
can then acquire it and complete the call.
An enhanced test harness and more rigorous async callback test

The new test async_off_stack goes to lengths to exercise the
off-thread call path.

Could not make std::timer::recv_timeout work
to time out on deadlocked tasks.