Implement UsbPolicyAllowedDevices class

This change creates a new UsbPolicyAllowedDevices class that reads the
preference value for kManagedWebUsbAllowedDevicesForUrls and creates a
mapping of the tuple (vendor_id, product_id) to a set of URL patterns.
The class also provides a method to check if a pair of requesting and
embedding origins are allowed to access a device with vendor_id and
product_id.

The design document for this feature can be found at:
https://docs.google.com/document/d/1MPvsrWiVD_jAC8ELyk8njFpy6j1thfVU5aWT3TCWE8w

Bug: 854329
Change-Id: I014849be2ef4779e45c28c6699ff34022d3e9b89
Reviewed-on: https://chromium-review.googlesource.com/c/1250060
Commit-Queue: Ovidio Henriquez <odejesush@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596710}
5 files changed