Allow camera coordinates to be transformed to world coords

This method is not yet perfect. For some reason, possibly
a lack of precision, or how the sprites are drawn, the
edges of the sprites do not line up with the edges of the
world space coordinates this function returns
Hackily fix the initial mouse position
Keep a queue of the mouse events

Javascripts naive, list-based queues are very innefficient,
but will do for now. Tracking the latest mouse events is
meant to make the input processing simpler, but this might
be better handled by a true state machine