Misc. additions to get Helm working

* Added `createTexture` and `createSoftwareRenderer`
* Added `setTextureAlphaMod` and `setTextureColorMod`
* Added `setRenderTarget`
* Added `updateTexture`
* Added `lockTexture`
* Added `getMouseState` and `getRelativeMouseState`
* Added enum instances for `MouseButton`, `Keycode` and `Scancode` for consistency and easy interop. I might end up going through and doing this for the rest of the enumerable data structures later on instead of just having functions for converting specific types.