Add `flush_messages` function and remove `EventReceiver` type

This simplifies the API and makes message flushing more generic.

Example:

~~~rust
for event in glfw::flush_messages(&events) {
    // handle event
}
~~~