A more-or-less debugged cross-thread call implementation

Pooled call minder threads now wait with exponential backoff
timers to drive the call to completion in case no other thread
has done so.
g_type_init() was completely blameless.
Small fixes to the build rules
Do serial and parallel test runs, selectably
Added -Wall -Werror to the C compiler flags
Give each Rust thread its own GMainContext

For call with no context previously associated.
Otherwise the calls all end up contesting the default context.

This could be a nice way to impose the inherent parallelism of a
Rust program on the GLib objects it uses.
Wait for spawned tasks to complete and check the result
Abort tests on critical GLib errors

We want to catch those call timeouts in the act.
Set G_SLICE=debug-blocks for the serial test

The added contention of the globally locking slice allocator checks
should better not interfere with the parallel run, though.
More informative call timeout failure