Added WindowCloseEvent support. Application decides how to react to this.
Closing a Window doesn't abortively crash the program on Linux anymore.
Changed way the event processing loop on both implementations work.
- They now use blocking functions (PeekMessage() -> GetMessage())
- They no longer return boolean values. Instead, they are infinite loops, and destroying the last window exits the event loop. This occurs:
-- On Linux: as soon as the next event is processed
-- On Windows: as soon as the Quit message is received

Added INVALID to MouseButton, changed xButtonToMouseButton to return this when a mouse button ID is not recognized.
Mousewheel messages are handled by ButtonPress now instead of ButtonRelease. I doubt it makes much of a difference, though.

Commenting, spacing, code organization