Added some methods for event-handling, Renderer support and Scancode retrieval.

Note that `createWindowAndRenderer` differs slightly from the original method, because a window configuration that contains width and height gets passed in anyway and thus there's no apparent need for extra parameters.
At first I had it wrapped in a `Maybe` but then gave it away for free :) I'm not sure whether throwing is really what people want, but on the other hand I'm also pretty sure that this approach was chosen for a reason. So should I rather wrap this in a `Maybe` (and do the same for windows and renderers as well) or use `throwIfNull` twice?