Reland "Add encryption support to pseudo-USS"

This is a reland of 66a392fa289531d8880ba9ea03148d7d7ea4e274

Reland fixes unit tests that accidentally used DCHECKs with side
effects, making tests fail in non-debug builds.

Original change's description:
> Add encryption support to pseudo-USS
>
> This patch extends SyncableServiceBasedBridge (core to pseudo-USS)
> with support for encryption, via a newly introduced interface
> (ModelCryptographer), which needs to be usable in the model thread
> (where the bridge lives).
>
> This should unblock the migration of PASSWORDS to pseudo-USS, because
> password data must be encrypted at all times. This is a first step of
> a proposal described in a dedicated section in the Design Doc:
> https://docs.google.com/document/d/14ScYZ0sop921gjBwXuReIEuQJlwftqkuSM1jMK_A_x4/edit#heading=h.ev0xr4j8pkot
>
> Actual usage of this functionality will be introduced in follow-up
> patches.
>
> Bug: 870624
> Change-Id: I227d429dc952bfe1a3a4fb05cd1ab71cac9ba1c6
> Reviewed-on: https://chromium-review.googlesource.com/c/1288594
> Commit-Queue: Mikel Astiz <mastiz@chromium.org>
> Reviewed-by: Marc Treib <treib@chromium.org>
> Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#601254}

TBR=treib@chromium.org

Bug: 870624
Change-Id: Ie576b1aebf6bb989bba95d808031ab8433ec8b6a
Reviewed-on: https://chromium-review.googlesource.com/c/1292556
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601479}
10 files changed