cryptohome: Implement dircrypto migration cancellation

- Add AtomicFlag which is a dead copy of Chromium's.
- Implement MigrationHelper::Cancel
- Implement Mount::MaybeCancelActiveDircryptoMigrationAndWait(), and
call it from Mount::UnmountCryptohome().

BUG=chromium:733169
TEST=cros_workon_make cryptohome --test
TEST=Run "restart ui" while migration is running

Change-Id: Iead7c00af21e09af4bf7f271c9f76c1d2369448e
Reviewed-on: https://chromium-review.googlesource.com/535500
Commit-Ready: Ryo Hashimoto <hashimoto@chromium.org>
Tested-by: Ryo Hashimoto <hashimoto@chromium.org>
Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org>
8 files changed