Reland: Implement GetAssertionTask

Implement per-device request logic for AuthenticatorGetAssertion
request. GetAssertionTask should asynchronously start a request and
decode device response.

This is a reland of https://crrev.com/c/941977, which was reverted due
to merge conflict with https://crrev.com/c/969799. All contents remain
the same, except that fix for merge error in
GetAssertionTask::CheckRequirementOnReturnedCredentialId() is added.

Bug: 780078
Change-Id: I35a619ff63a680cfd8996c65a488245e6ed9a330
Reviewed-on: https://chromium-review.googlesource.com/983007
Commit-Queue: Balazs Engedy <[email protected]>
Reviewed-by: Balazs Engedy <[email protected]>
Cr-Commit-Position: refs/heads/master@{#546436}
diff --git a/device/BUILD.gn b/device/BUILD.gn
index 954d4dc..614cdf2 100644
--- a/device/BUILD.gn
+++ b/device/BUILD.gn
@@ -73,6 +73,7 @@
     "fido/fido_discovery_unittest.cc",
     "fido/fido_hid_message_unittest.cc",
     "fido/fido_request_handler_unittest.cc",
+    "fido/get_assertion_task_unittest.cc",
     "fido/make_credential_task_unittest.cc",
     "fido/test_callback_receiver_unittest.cc",
     "fido/u2f_parsing_utils_unittest.cc",