Pretty major refactor of DraggableView.
- Add an alternateOrigin it can snap to.
- Use UIGestureRecognizer instead of raw touches for more compatibility.
- Various other fixes.