Change View2D function names

Also make the TouchZoom interaction no longer use a private View2D function.
Add a rotateNoConstraint View2D method
Make TouchRotate interaction use rotateNoConstraint
Add a snapToZero rotation constraint
Do not apply rotation constraint while rotating

This is on par to what the TouchRotate interaction does.
Make animating rotation possible
Animate rotation when releasing mouse or fingers