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.
You need to wrap this in `throwIfNull`.