Sync: Reconfigure whenever a SyncSetupInProgressHandle is released

Before: Reconfigure Sync only when the *last* handle is released.
After: Reconfigure Sync whenever a handle is released, whether there
are any others or not.

On desktop, this fixes the case where a chrome://settings/syncSetup
tab is left open and forgotten somewhere, which previously prevented
Sync from ever applying new settings.

On Android/iOS, only one Sync setup UI can be visible at a time, so
this doesn't change any behavior. However, we now need to be careful
not to needlessly re-create the handle.

Bug: 884159
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Ib61d063ac8b6e76d05a5b72d17de7b1e031a51dd
Reviewed-on: https://chromium-review.googlesource.com/c/1280208
Commit-Queue: Marc Treib <treib@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601899}
7 files changed