[CrOS Multidevice] Migrate usage of unlock_key and mobile_hotspot_supported to software features.

This removes usage of ExternalDeviceInfo's unlock_key and mobile_hotspot_supported booleans,
and completely removes RemoteDevice's unlock_key and mobile_hotspot_supported boolean fields,
in favor of their software features fields. This is in anticipation of all Better Together
features using the new software features paradigm.

There are special considerations in CryptAuthDeviceManager that account for the migration
process to this new paradigm:
1) Old devices saved to prefs before this CL lands are opened from prefs by ignoring
their deprecated boolean fields, and migrating them to software features.
2) The CryptAuth server does not yet serve devices with their software features populated.
CryptAuthDeviceManager now recognizes if that is the case, and appropriately migrates the
incoming device to not use the deprecated booleans, and instead populate its software features.

R=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I8dceb7317410e5a9bc95055ac7ce3514fc26660e
Reviewed-on: https://chromium-review.googlesource.com/1080268
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574350}
18 files changed