Add async register/unregister APIs in Settings/UserSettingsProxy.

Add new suspend API for kotlin and a Java API launching a new coroutine
for each existing register/unregister ContentObserver API in
SettingsProxy and UserSettingsProxy.

Added a new API in the SettingsProxy interface that provides the
dispatcher to be used while calling the above async methods. Each
individual implementation can decide which dispatcher to use based on
the injected parameter.

Test: make SystemUIGoogle, atest SettingsProxyTest, atest
UserSettingsProxyTest
Bug: 330299944
Flag: NONE new async APIs and existing APIs kept unmodified.

Change-Id: I6f50a78b404a97d81403eb1dfe79fec09c6a965f
9 files changed