Split collect logic out of requestIfNeeded methods

In order to support proper tracking, we need to be
explicit about which transitions we collect changes into. The,
"ifNeeded" functions hard-code the global collector as the
fallback which isn't compatible with this goal.

This CL separates the collect logic out of the requestStart
variants so that callers can specify where to collect changes.

Bug: 325114242
Test: N/A. This is a no-op refactor so existing tests should cover.
Change-Id: I632b0eb0f1ac3693c41bb1d7476ed37cbd2afeb2
13 files changed