Mouse-controlled horizontal block movement fully implemented.
Input handlers now bind to root panel.

This prevents odd behaviour occurring when a user presses down on the
mouse over the canvas, but releases the mouse outside of the canvas
(even if only slightly).
Added double-click to rotate piece.