First pass on blink compiling for GN build

This adds most of the blink bindings and code to the GN build. It runs but I have only spot-checked that
the outputs are identical to the GYP ones.

Moved the feature defines to config.gni. Added a string version of these defines (GN doesn't
have a nice way to do this in the format the scripts expect, so I also added a python script).
This is used in various actions.

Provide GN equivalents for the core and bindings gypis.

The bindings BUILD.gn file is a bit icky with rebase_path all over the place and it's difficult to
follow where the names are relative to. We read the file lists from gypis and the source isn't
really the way GN would prefer. I'm planning to add a function to GN to convert a path to a
source-absolute path which will clean up some of these calls (in a later pass).

R=nbarth@chromium.org, thakis@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@174920 bbb929c8-8fbe-4397-9dbb-9b2b20218538