Add viewport edge scrolling.

This is a mode where the viewport automatically scrolls when the mouse
approaches the viewport's edges.

Fixes #17.