Separated internal classes into declarations and definitions
Added bunch of `WindowEvent::*` events;
Update `WindowEvent::Type` with newly-created events names;
Update `WindowEvent::Event` union with newly-created events
Added public virtual abstract `Window::PollEvent` method
Shh... header...