Revert the pure KVO approach

Turns out UIScrollView is not KVO compliant, use an alternative pan
gesture instead.