Split into multiple crates

Our bindings are going to be generated one crate per GIR namespace.
The only hand-crafted grust crate is linked in as the core library
for all generated bindings.
To prove this can work, I have emulated the would-be generated crates
for GLib, GObject, and GIO.
Added makefiles

Only GNU make needs apply.