GTypes macro + split out GLib.jl

This modifies your pull request to do roughly the same work, but without calling eval. It also eliminates the runtime creation of types, since if the library hasn't provided specific methods for the type, it is rather pointless to generate the exact type for it at runtime.

Please let me know what you think of this approach.

I was unable to turn `make_gvalue` directly into a macro, since I use runtime values in creating `fundamental_fns`. It could still be done, probably by providing both the macro and function, but I'm not sure it's exactly worthwhile. Instead, I fixed the function to `eval` in the current module as was originally intended.