Added circle support and cleaned up duplicate code

Added support for circles for faster volume control. Also removed some
duplicate code and made it so the system will reset its gesture
monitoring if you stop mid-gesture (mainly applies to circles)