Decompose ListeningGestureDetector.

The class was a GestureDetector subclass responsible for
- receiving MotionEvents from Recycler view
- passing them off to mouse/touch specific code (that in turn
    where relaying events to band, gesture, and drag helpers)
- then finally delivering events to parent gesture detector.

This change decomposes this arrangement into:

A dedicated TouchEventRouter that is reponsible for:
- delivery of events to injected mouse/touch deligates.
- delivery of events to an injected gesture detector.

Migrate Band/Gesture specific logic into the respective helper classes.

Renamed InputEventDispatcher to GestureRouter to make role
more immediately obvious.
I can't seem to convince git that it's a rename, though.

Bug: 64847011
Test: Passing.
Change-Id: Icf671cb4ca44a0aff11bb3547342de0063b2f403
12 files changed