Adds the mouse dragging to pan function

This function is implemented in onRender() instead of onMouseMove(),
because it will be smoother/responsive this way.

Strangely, on the other hand, I found out that the mouse wheel to zoom
function is actually smoother if implemented in the onMouseWheel().
If implemented in onRender(), wheel events will sometimes be ignored.
I cannot explain why.
Changes the mouseEvent.type of "mousewheel" to "wheel"

The "mousewheel" is not functioning at all in Dart's Chromium.
According to MDN
https://developer.mozilla.org/en-US/docs/Web/Reference/Events
"wheel" is the standard event type for mouse wheel event.

In addition, the deltaX, deltaY, and deltaZ returned by WheelEvent
are double values, so I use toInt() to circumvent this issue.
Probably in the future it will be better to directly declare the
deltaX,Y as double variables in the Mouse class.