Reland of Add U2F request state machines (patchset #1 id:1 of https://codereview.chromium.org/2838573002/ )

Reason for revert:
Missing initialized variable can be initialized and this patchset can be merged again.

Original issue's description:
> Revert of Add U2F request state machines (patchset #5 id:180001 of https://codereview.chromium.org/2821263005/ )
>
> Reason for revert:
> Reverting because U2fRequestTest.TestBasicMachine fails consistently on MSan bots (Linux MSan, Linux ChromiumOS MSan).
>
> Original issue's description:
> > Add U2F request state machines
> >
> > U2fRequest base class is extended by each type of U2F
> > request. Common functions of enumeration and device iteration
> > are defined in the base class. U2fSign performs an entire
> > sign request on any attached U2F devices, and U2FRegister
> > performs the registration request on the devices.
> >
> > BUG=686310
> >
> > Review-Url: https://codereview.chromium.org/2821263005
> > Cr-Commit-Position: refs/heads/master@{#466529}
> > Committed: https://chromium.googlesource.com/chromium/src/+/892eb34117f811aa62c821c9129dc53110266e9a
>
> TBR=reillyg@chromium.org,kpaulhamus@chromium.org,juanlang@chromium.org,piperc@google.com,piperc@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=686310
>
> Review-Url: https://codereview.chromium.org/2838573002
> Cr-Commit-Position: refs/heads/master@{#466666}
> Committed: https://chromium.googlesource.com/chromium/src/+/80f6eac95d5a0b54894b1526ba505308efd5ab23

TBR=reillyg@chromium.org,kpaulhamus@chromium.org,juanlang@chromium.org,piperc@google.com,pkalinnikov@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=686310

Review-Url: https://codereview.chromium.org/2835133003
Cr-Commit-Position: refs/heads/master@{#466872}
18 files changed