Added support for independent horizontal and vertical zoom. By default, the two directions are synced; unselecting the lock control allows the two sliders to move independently
Added a map that shows the position and size of the viewport relative to the dataset. The rectangle that represents the viewport can be dragged around to scroll the viewport, and can be placed at a new location within the dataset by clicking.
Fixes #1, #9, #24, and #25