Make client bindings associated for UsbDeviceManager.

With separated pipes, there will be a race condition between
GetDevices() method and OnDeviceAdded/Removed events. In this case,
device list returned from GetDevices() may out of date if a event
happened between the request sending out the client getting the
device list.

This CL made the client bindings associated for UsbDeviceManager
interface and implemented it in device::usb::DeviceManagerImpl to
eliminate the potential race condition.

Bug: 699790
Change-Id: Iad019009fa831f6d2f3ccf9b5c7064f18c416cea
Reviewed-on: https://chromium-review.googlesource.com/1223339
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Donna Wu <donna.wu@intel.com>
Cr-Commit-Position: refs/heads/master@{#592666}
4 files changed