Use SharedProtoDatabaseClient in ProtoDatabaseWrapper

Introduces the ability to get a SharedProtoDatabaseClient when using
ProtoDatabaseWrapper instead of strictly a UniqueProtoDatabase.

Includes bi-directional migration, and a new suite of tests for
ProtoDatabaseWrapper that ensure the flow works when getting either
type of database and that migration works in both directions.

Bug: 870813
Change-Id: I0cb47497dbdf98903a1bf17c68b0a4f6edcb7e14
Reviewed-on: https://chromium-review.googlesource.com/c/1354490
Commit-Queue: Troy Hildebrandt <[email protected]>
Reviewed-by: Tommy Nyquist <[email protected]>
Cr-Commit-Position: refs/heads/master@{#617549}
13 files changed