Work on GN cross compiling.

This makes ARM cross-compiling "kind of" work. It doesn't know about the sysroot yet, but the toolchains and such are hooked up and things compile (but don't link due to not finding the libraries in the sysroot).

The way you do the cross compile is:
  gn --args="cpu_arch=\"arm\""

This changes how platform detection is done in GN. Previously it set is_win, is_linux, etc. internally. Now it just sets a string for the current specific system type, and the build defines what is_* flags it wants. This should gives us more flexibility for more systems.

I also added a "cpu_arch" variable. And both the os and cpu_arch variables also have a "default" equivalent so you can get access to whatever the host one is when it's being overridden.

I changed the default output location from out/gn to out/Default which makes more sense.

I added some string escaping to the self-invocation command so that the "arm" command line above is properly escaped.

BUG=309174
R=piman@chromium.org

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

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