switch positioning during drag to use CSS transform + RAF

The dragged element is now positioned using transform: translate(x, y)
rather than left: x, top: y.

Position updates are now done via requestAnimationFrame rather than
immediately on every pointer movement event.