Some fixes for the GYP subcommand of GN

This adds support for writing shorter paths if an output file is inside the output directory (previously we'd write "../../out/Debug/foo" when we could just write "foo"). Fixing this was necessary because we need to match GYP's input/output files exactly and GYP does this. I also fixed a buf with outputting root dirs not ending with a slash, and added an assertion that the output isn't system-absolute (since the code doesn't handle this yet).

The GYP integration didn't work due to slashes being different on Windows, so I convert them whem I read GYP's ninja file. I also deal with Windows lineendings.

Some buildfile fixes for GYP compatibility, and the previous patch had the wrong name for LASTCHANGE.

I changed the default to a non-component build since this is the GYP default. They both need to agree about this.

BUG=
R=scottmg@chromium.org

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

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