Pluggable backends for GMainLoop

A main loop can now be constructed around a custom poll backend
with g_main_loop_new_with_poller().
There are a couple of new functions to enable poller
implementation, g_main_loop_prepare_poll() and g_main_loop_process_poll().
g_main_loop_start() can be used to acquire the context and relinquish
control to an external event loop.
Added an epoll backend for GMainLoop
glib/gmain.c: Some opportunistic whitespace love
A simple test for polling on a file-like descriptor
glib/tests/mainloop: Acquire the context while asserting its state

The iteration methods presume that the context is acquired.