Modernize on-demand update checks on Windows.
The code was a bit long in the tooth. Some changes:
- There is now a fairly comprehensive unit test.
- Update checks no longer do a nested Run() of the FILE thread's message
loop. Rather, they return to the main loop while waiting for Google
Update.
- A callback is used to return the results rather than a single-method
listener interface.
- Lifetime management is simpler: the interface can be fire-and-forget
since the caller could specify a null callback.
BUG=424689
Review URL: https://codereview.chromium.org/
729273002
Cr-Commit-Position: refs/heads/master@{#306421}