Fixed up the off-stack call path for g_file_get_path
Added an EventLoop class wrapping a thread-local GMainLoop

Now that each Rust thread gets its own GMainContext, we need a way
to safely create a GMainLoop around that context.
A working implementation of async calls and type casting
Implement the wrapper for g_file_read_finish()