Splits up internal binder api for scroll capture

Splits the connection callback out from the session
callbacks.

Use ListenableFuture at the ScrollCaptureClient layer
to safely chain together futures, provide a better
exception handling/reporting path, and allow for
cancellation of background tasks.

Bug: 180671218
Test: atest ScrollCaptureClientTest ScrollCaptureConnectionTest
Test: atest ScrollCaptureFrameworkSmokeTest
Change-Id: Ibc8536d12a5554f62b3d7e1f4f717d3589ec45e0
28 files changed