Reland: listen to UsbDeviceManagerClient in UsbChooserContext.

The original CL has been reverted because it failed on USB browser
tests for the race condition between UsbDeviceManager::SetClient()
and UsbDeviceManagerClient::OnDeviceRemoved/Added() events.

Before this CL, two client bindings from UsbDeviceManager to Blink
have been made associated and a earlier connection is set up before
all requests to UsbDeviceManager in this CL.

The original CL's description:
> For UsbService::Observer, "OnDeviceRemovedCleanup" needs to be handled
> after "OnDeviceRemoved". But for mojom interface UsbDeviceManager,
> there is no way to provide such dependency among listeners.
>
> As all users will be converted from UsbService to UsbDeviceManager,
> to avoid the potential race condition, WebUsbServiceImpl is made
> listen to UsbChooserContext in this CL.
>
> Bug: 699790
> Change-Id: I1e3b45196552e987b7422b127651e1fb01e1618b
> Reviewed-on: https://chromium-review.googlesource.com/1210386

Bug: 699790
Change-Id: Ied803bf1e3b0fcc8daad14f6acd4a6d3ca98129f
Reviewed-on: https://chromium-review.googlesource.com/1226824
Commit-Queue: Donna Wu <donna.wu@intel.com>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592693}
11 files changed