[CrOS MultiDevice] Convert to multidevice::SoftwareFeature/BeaconSeed.

Before this CL, RemoteDevice and related classes directly used CryptAuth
proto enums/messages for SoftwareFeature and BeaconSeed fields. This was
problematic because:
  (1) RemoteDevice has been moved to a common/shared location and is now
      meant to be independent of any one service. Thus, it no longer
      makes sense for it to contain fields that are implementation
      details of the DeviceSync service.
  (2) The CryptAuth SoftwareFeature enum included an UNKNOWN_FEATURE
      enum value, but this value was only meant to be used as a sentinel
      value while communicating with the CryptAuth server. Since we
      previously referenced the cryptauth::SoftwareFeature enum
      directly, it was possible for RemoteDevice objects to have a state
      for UNKNOWN_FEATURE, which does not make sense in this context.
  (3) The CryptAuth SoftwareFeature enum referred to feature names using
      outdated and/or incorrect names.
  (4) CryptAuth protos do not define an operator<<() function, so it was
      possible to log a cryptauth::SoftwareFeature as a number instead
      of as a user-readable description. This led to issues such as
      https://crbug.com/906836.

A follow-up CL will move the RemoteDevice Mojo definition from
device_sync.mojom (i.e., the DeviceSync-specific Mojo file) to a new
multidevice.mojom file meant to be referenced by other Mojo definitions.

Change-Id: Iccf4997cb5a1c6f4c34e7962c7c993f74f8aa8f0
Bug: 912743
Reviewed-on: https://chromium-review.googlesource.com/c/1362214
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614598}
61 files changed