Fix ScrollView and HorizontalScrollView overscroll retraction

Bug: 288270962

When overscrolling, the scroll was being stuck beyond the range
of the scroll. This left it in a funny position and the next
time the ScrollView or HorizontalScrollView had an interaction,
it would snap to a valid scroll offset.

This CL allows the scrolling to move the content back to the
expected position without affecting the stretch.

Test: new tests, manual testing
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3bd8d8e9a98922a9d5201e0cc6484753512ec97d)
Merged-In: I8f5ae18d44adf55d9ce026b0e31f3d1a140d57c6
Change-Id: I8f5ae18d44adf55d9ce026b0e31f3d1a140d57c6
9 files changed