Add "touch element" to specify the element that triggers touch events

This allows the touch element - the element bound to the touch events - to be different from the spinning element. For example, you could make a handle element that spins a propeller, or attach the spin events to a container element.

If no touch element is specified, the touch element will default to the propeller element (`this.element`), which is the same as the current implementation.

Also included a small tweak to allow access to an accurate `this.lastAppliedAngle` from the `onRotate()` callback.