[WIP] extract event streams into a separate class

Just a sketch of your idea extracting the the event sources into their own class. 
Not sure if we need separate EventSources for Keyboard, Window, Mouse and Touch.