fix pan/zoom lags in Chrome before/after move

Previously, the surface switched between HW-accelerated and
non-accelerated state due to resetting transform property to ‘’ (while
translate3d triggers HW), which caused lags in Chrone
Restore leading event for move throttling

Hash updates turn out to be very timing sensitive.
While it's OK for drag gestures to be throttled with
a trailing edge, manual moves such as zooming to a
particular feature should always trigger a leading
edge update.

To recoup the performance, we could refactor the map
events to the standard movestart, move, and moveend,
and update the hash only on moveend.

Fixes #2023