Reland: Introduce the devices Mojo app

It's a small Mojo app that currently only hosts USB device
services. This CL adds the app along with an apptest suite
(run manually with mojo_runner mojo:devices_apptests).

The app is hooked up to Chrome to run in the browser process,
though there are currently no production code paths which
cause the app to launch.

The original CL (https://codereview.chromium.org/1165223004/)
was reverted for breaking Win8 GN builds, because the "midi"
component target depends on //device/usb.

This is being relanded with no logic changes, just some
shuffling of sources into different targets. I've decided
to move all the USB mojo service code into devices_app,
which allows previous //device/usb dependents to remain
unaffected by the introduction of mojo support. Component
targets depending on mojo is a bad time for everyone.

BUG=498557
TBR=reillyg@chromium.org,sky@chromium.org
TBR=eroman@chromium.org - code moving from device/usb to device/devices_app/usb requires net/base in DEPS

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

Cr-Commit-Position: refs/heads/master@{#333975}
39 files changed