anchor.diff:  AuthenticationRequest, and AuthenticationResponse types from the U2F_V2
   specification are used.
   
  -[source]
  +==== Device Descriptor
  +The DeviceDescriptor describes a registered U2F device. Each Device has a 
  +unique handle used to identify the device, as well as a dictionary of key-value
  +properties. A pre-defined set of these properties are set by the system and are
  +read-only. Other than the pre-defined set, the client can store arbitrary data
  +in these properties.
  +
  +[source,javascript]
   ----
   dictionary DeviceDescriptor {
     DOMString handle;
  
positive.code: };
  ----
  
  [source]
  ----
  dictionary RegisterResponseData {
    RegisterResponse registerResponse;
    dictionary setProps;
    DOMString[] getProps;
  };
  ----
  
  [source]
  ----
  dictionaty AuthenticateRequestData {
    AuthenticateRequest[] authenticateRequests;
  }
  ----
  
  [source]
  ----
  dictionary AuthenticateResponseData {
    AuthenticateResponse authenticateResponse;
    dictionary setProps;
    DOMString[] getProps;
  };
  ----
  
  === HTTP resources
  
  *Resource*
  /:userId
  
  *Methods*
  +GET | DELETE+
  
  *Query parameters*
  Optional
  filter=string[,string]...
  
  *Description*
  GET returns a list of device handles, with their properties (optionally only properties in the filter).
  Server response: DeviceDescriptor[]
  
  DELETE deletes all data associated with the user.
  
  
  *Resource*
  /:userId/register
  
  *Methods*
  +GET | POST+
  
  *Description*
  GET initializes registration for the given user (all registered devices).
  Server response: RegisterRequestData
    
  POST completes the registration, storing a new registration associated with the user.
  Client request: RegisterResponseData
  Server response: DeviceDescriptor
      
  *Resource*
  /:userId/authenticate
  
  *Methods*
  +GET | POST+
  
  *Description*
  GET initializes authentication for the given user (all registered devices).
  Server response: AuthenticateRequestData
        
  POST completes the authentication, updating and returning properties for the device which signed the challenge.
  Client request: AuthenticateResponseData
  Server response: DeviceDescriptor
  
  *Resource*
  /:uid/:handle
  
  *Methods*
  +GET | POST | DELETE+
  
  *Query parameters*
  Optional
  filter=string[,string]...
  
  *Description*
  GET returns properties for the device, optionally filtered.
  Server Response: DeviceDescriptor
  POST sets properties for the device.
  Client Request: {“<prop-name>”: “<prop-value>”, ...}
  DELETE removes the device registration.
  
  
negative.code: };
  ----
  
  ==== RegisterRequestData
  The RegisterRequestData contains the parameters needed to invoke the _register_
  function of a FIDO client.
  
  [source,javascript]
  ----
  dictionary RegisterRequestData {
    AuthenticateRequest[] authenticateRequests;
  