Implement common code for component and extension updaters.

The changes not under update_client are mechanical.

This change creates a working UpdateClient updater client, which can be reused by both component and extension updaters.

This code is not hooked up yet with any of the updaters above.
Those changes will be committed in the near future by other CLs.

R=waffles,erikwright,agl,dgarrett,jhawkins,brettw

BUG=450337

Committed: https://crrev.com/ba6742df55de47568e3aa438378d844a7439c391
Cr-Commit-Position: refs/heads/master@{#325006}

Review URL: https://codereview.chromium.org/1055903003

Cr-Commit-Position: refs/heads/master@{#325658}
62 files changed