Improve support for Nintendo Switch gamepads

This adds support for Nintendo Switch controllers through Gamepad API:
* Switch Pro (USB and Bluetooth)
* Joy-Con L (Bluetooth)
* Joy-Con R (Bluetooth)
* Joy-Con L+R (Bluetooth)
* Charging Grip (USB)

These devices require an initialization sequence that is not performed
by the host's gamepad support or by the platform data fetcher. They also
provide calibration data that is needed in order to correctly scale the
thumbstick inputs.

This implementation replaces the experimental Switch Pro support on
Linux, which is removed in this CL.

BUG=801717

Change-Id: Ided8ec689a87a69643b4d4d82dc3b2bf04a7c912
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1510080
Reviewed-by: Ovidio de Jesús Ruiz-Henríquez <odejesush@chromium.org>
Commit-Queue: Matt Reynolds <mattreynolds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642214}
27 files changed