Work on the GN GYP generator

This adds writing all and direct dependent settings. To factor this out so it could be shared between this code and the main target writing code, I extracted a shared Flags structure and made functions to extract the various things to that structure, and then write that structure to the GYP file.

I renamed TargetPair to TargetGroup and added the "host" debug and release targets for cross-compiling. These values are still not set however, this just moves the boundary back one layer of abstraction.

This converts the "re2" target to be GN->GYP generated. It's one of the simpler third_party ones that I'm using to test that Chrome can link with it.

BUG=309172
R=scottmg@chromium.org

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

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