Fix GN unit tests

Various uses or $arch were not updated in the script writing code and in the expected output from when I changed how this works. This updates the script target writer and updates the test expectations.

This moves the creation of the output directory from the build settings to the script execute code. I added this previously because the output directory wasn't always created by the time the windows toolchain setup script was run. But lots of tests don't bother to set the source root, and we don't want the tests creating directories randomly anyway. So this moves the creation to when we need it, although most of the time it will be a NOP.

I added a build file for device/usb because I was bored last night.

BUG=
R=scottmg@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231124 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 231124