[Sync:USS] Add primary key to LoginDatabase

LoginDatabase doesn't have a primary key, however migration to USS
requires the concept of storage key which is ideally the primary key
of the table.

LoginDatabase uses SQLTableBuilder to migrate from different database
versions. SQLTableBuilder migration doesn't support adding primary keys
at arbitrary version, rather only in the first version.

This CL adds the support to introduce primary keys and unique keys at
any version and adjusts the migration code accordingly.
In addition, it uses the updated SQLTableBuilder to add a primary key
to the LoginDatabase.

Bug: 902349

Change-Id: I08f0d6f9884c5ef2b99650a76716197ca4f18b9c
Reviewed-on: https://chromium-review.googlesource.com/c/1361861
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620713}
9 files changed