Implement HidService mojo interface

The HidService mojo interface provides access to HID devices without
exposing information about devices that the client does not have
permission to access.

This CL implements the GetDevices, RequestDevice, and Connect
methods and adds unit tests.

BUG=890096

Change-Id: I4e4edb6d6d2c8d9f58f455824002aecfc70a5c95
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1661183
Commit-Queue: Matt Reynolds <mattreynolds@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672226}
11 files changed