crOS Account Manager: Add a util for running migrations

A series of async steps need to be performed for migrating existing
users to Chrome OS Account Manager. Please see the attached bug for a
Design Document.

Add a utility for sequentially running a series of async migration
steps, which are run only if the previous step was completed
successfully.

This utility allows us to specify the migration steps in a declarative
style with clear dependencies instead of creating a complex web of
callbacks.

Bug: 904128
Test: unit_tests --gtest_filter="*MigrationRunnerTest*"
Change-Id: I5bd5ddc1fb59060577e535fb115bd4689adfaaa7
Reviewed-on: https://chromium-review.googlesource.com/c/1329964
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Pavol Marko <pmarko@chromium.org>
Commit-Queue: Kush Sinha <sinhak@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612179}
4 files changed