add basic panning

could maybe be a mixin or something. @TooTallNate had a clever idea to use overflow scroll, not sure if we could still hack that in instead of re-implementing but it's not much code.