Added the ability to listen to mouse and keyboard events. The events are buffered and dispatched at the start of each new frame. Also added an input polling class.