Replace device::UsbDeviceFilter with device::mojom::UsbDeviceFilter

There is no need to use a custom class to represent USB device filters.
The Mojo type plus a set of functions to perform filter matching are all
that is necessary. This allows us to delete a bunch of code and break a
circular dependency between //device/usb and the typemaps defined in
//device/usb/public/interfaces.

Bug: 731009
Change-Id: If2522e775d5521ef7fb42b63165daa4d51963074
Reviewed-on: https://chromium-review.googlesource.com/527487
Reviewed-by: Xiyuan Xia <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Reviewed-by: Ken Rockot <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Commit-Queue: Reilly Grant <[email protected]>
Cr-Commit-Position: refs/heads/master@{#480236}
diff --git a/device/BUILD.gn b/device/BUILD.gn
index 458c5eb..bd989961 100644
--- a/device/BUILD.gn
+++ b/device/BUILD.gn
@@ -158,8 +158,8 @@
       "usb/mojo/device_manager_impl_unittest.cc",
       "usb/mojo/mock_permission_provider.cc",
       "usb/mojo/mock_permission_provider.h",
+      "usb/public/cpp/filter_utils_unittest.cc",
       "usb/usb_descriptors_unittest.cc",
-      "usb/usb_device_filter_unittest.cc",
       "usb/usb_device_handle_unittest.cc",
       "usb/usb_ids_unittest.cc",
       "usb/usb_service_unittest.cc",
@@ -171,6 +171,7 @@
       "//device/usb",
       "//device/usb:test_support",
       "//device/usb/mojo",
+      "//device/usb/public/cpp",
       "//device/usb/public/interfaces",
       "//net:test_support",
     ]