Mouse things

These commits implement SDL.Input.Mouse module and adds some more Haskellish types to work with in mouse-related events.

I'm fine with this emitting a warning - as you've mentioned, things could be better in this respect.