autogenerated files shouldn't be in the build tree.
added basic option parsing.
merged filename stuff.
filenames.
pulled all gn-related stuff from my junk branch, so gn can have its own repository.