GYP generator for GN.

This creates a GYP generator for GN. The GN build is run twice, once for debug and once for release mode. The resulting targets are paired to find the debug/release version of each one, and we write out the results as a GYP file.

Since a GN build can change anything based on the debug/release status, including changing the file list, and GYP can't there are a bunch of checks to make sure that the source files and deps don't vary between the debug and release version of the same target.

I split the Setup class apart so I can make duplicate Setup classes base on an original one (I use this to configure a release build based on the debug one). I added some copy constructors to the necessary classes so this would work.

This reads in the GYP_DEFINES and configures the GN build in the same way. The mapping between GYP_DEFINES and gl flags is hardcoded. I had to write some parsing code for the GYP_DEFINES which is unfortunate.

I added a new GN variable "gyp_file" for targets to set the GYP file that they should be written to.

I added a parameter for the Windows SDK path that matches the GYP build.

This removes the old "GYP" command.

I commented out all of the grit rules. These aren't helping anything right now and just slow down testing.

BUG=307571
R=scottmg@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228933 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 228933
Record stats about kExtensionKnownDisabled with the PrefMetricsService.

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

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