Rotary encoder scroll haptics in View class

This change implements scroll haptics in View class for rotary encoders.
The View class implementation allows to avoid regression for devices
which have had rotary scroll haptics in forks of previous Android
releases.
The long term plan for scroll haptics is to use the
ScrollFeedbackProvider in widgets. As such, this implementation will
eventually be removed in future Android releases once the
ScrollFeedbackProvider has been well integrated with major widgets.

We have also fixed a bug in HapticScrollFeedbackProvider, which was
necessary in using it for View-based rotary haptics. The bug was that it
was allowing scroll-limit haptics without any non-limit scroll events.
Tests have accordingly been adjusted.

Bug: 299587011
Test: manual, unit tests

Change-Id: Ifaeb89bd5bdc8c806c718d4aa8087cc0d2bf3ae5
8 files changed