Mouse things

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

Perhaps signal an error when x is neither of the above.