VerticalScrollEventsController
A controller that can be passed to VerticalScroll to trigger events from outside the component hierarchy.
When used with VerticalScroll, the controller also manages scroll position persistence across unbind/bind cycles. It holds onto the ScrollPosition reference so that when a new LithoScrollView is bound, the saved scroll position is restored, and when unbound, the scroll position is cleanly detached from the old view.