Refurbished Gio tests

The common harness has become useless.
New async tests get a convenient mainloop-running harness.
No mutability requirement on self to get the raw mut pointer
Added quark::from_static_string
Implemented error domain enumerations and their matching
Implemented method matches() on Error

A convenient wrapper around g_error_matches() for generated
error enums.
Given error::Unknown an int payload with the code

If the client meets an error code not represented in the bindings,
they will at least have the code value to report.
Namespace each generated enum

We want the enum variant names to be short, so to avoid name conflicts,
each generated enum is given a separate module with the name derived
from the enumeration's name stem. To avoid namespace irregularities in
the crate root, all enum modules are put under the top-level module
"enums".