Basic layout tests for WebUSB.

This change relands https://codereview.chromium.org/1734753003/ with
additional layout tests that provide basic coverage of all the functions
defined by the WebUSB API. The tests are implemented by providing mock
implementations of the Mojo services that Blink depends on to provide
the WebUSB API, allowing the entire test implementation to be done in
Javascript.

Discovered a number of bugs in isochronous packet handling while writing
these.

BUG=492204

Review URL: https://codereview.chromium.org/1730403006

Cr-Commit-Position: refs/heads/master@{#378578}
9 files changed