Added VS2008 Project generator.

This generates a VS2008 solution file and a project
per Project name.  A configuration is created per variant.
The "Win32" architecture is used as a dummy to make
the projects loadable.

Properties affecting code-browsing are not yet implemented.
VS2008 projects code browsing, fixed deps issues

Generated VS2008 projects now have the necessary properties set for
code browsing to work.
Fixed several deps issues with MSVC, including:
- PCH header dependencies
- Removed dependency on build.ninja from normal build rules, so that
  build.ninja isn't deleted during an ordinary targeted clean.
- Re-arranged msvc emit to eliminate some special-case handling.
FIxed PCH deps issues in gcc toolchain

Also fixed minor nvcc deps issues, for the recently
introduced task.extraOutputs.
Added link-time-optimization options.

Unfortunately these must be disabled by default on GCC,
because it's not completely stable.
Minor refactor to VS2008 project generator.

THe code now resides in a VS2008 class.
Directory listings are also sorted to preserve output consistency
and comparability.
Added more determinism to VS2008 project generator

This ensures variants are sorted correctly, and also
fixes a bug where variant names and commands were
being mismatched.
Additional small refactor to VS2008
Added VS2010 project generator.

The generated projects are loadable by VS2012 Express.
Renamed vsproj -> cb_vsproj.

This is in preparation of more codebrowsing (cb) code.
VS no longer rewrites generated Solutions.

The VS Solution generator now produces all the jank
necessary to satisfy the IDE.  The IDE no longer feels
compelled to fix up the solution file.  This also means
that the build and the IDE will no longer dirty & fight
over the solution file.
Fixed VS2010 projects to be buildable.