TouchInput: add a foundation for handling touch gestures

use this foundation to fix formation rotation gesture that has been broken since touch input was separated from mouse input
TouchInput: clear GC state when a gesture ends/aborts