//device/fido: add FidoAuthenticator interface

This adds the FidoAuthenticator interface, which defines the basic
methods from the WebAuthn authenticator model (MakeCredential and
GetAssertion).

FidoRequestHandler is changed to hold a map of FidoAuthenticator
instances, rather than a map of FidoTasks. FidoTask and FidoDevice are
moved behind a concrete FidoAuthenticator subclass called
FidoDeviceAuthenticator (but remain unchanged otherwise). This allows
for FidoAuthenticators that are backed by platform APIs rather than a
detachable physical  device.

This is a purely structural change. No functional changes intended.

Change-Id: Id158db5801ac4556066a1a88136d7a720b137e1b
Reviewed-on: https://chromium-review.googlesource.com/1045892
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557311}
12 files changed