[GCPW] Remove reauth credential when user's token handle is still valid

- Created a global token handle validator that can check in the
background if a token handles are still valid. The validator tries to
only check token handles who's status has not been updated for a certain
amount of time.
- When setting the user array, don't create reauth credentials if user's
token handle is still valid. This allows the user to simply enter their
Windows password through the normal windows password credential if their
token handle is valid.
- If no internet is detected, then all user token handles are valid.
- Created a new centralized singleton used to check if internet is
available. This singleton can be overridden in tests to simulate loss
of network.
- Removed no longer necessary IGaiaCredentialProviderForTesting
interface since the new internet check singleton can handle the testing
cases.


Bug: 923884
Change-Id: I02dff168786601b085b48e664b5e2de947fe853d
Reviewed-on: https://chromium-review.googlesource.com/c/1475195
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Roger Tawa <rogerta@chromium.org>
Commit-Queue: Tien Mai <tienmai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634341}
35 files changed