Added a generator for Sublime Text 2 project files.

The generator adds all list and source files for each defined
project. The generated project files also include build_system
entries that run the platform-specific make on the generated
Makefiles. A build_system entry is created for each target
that was defined in the CMakeLists.txt files.

At the moment this has only been tested with C/C++ projects.
Added some support for sublimeclang_options in the generated project file.

This adds -I include path flags and -D define flags for sublimeclang.
The current problem with this is that these flags cannot be set per
target (build_system in sublime text), it can only be set project
wide. Currently all of the include paths and compiler definitions from
ALL of the targets are used (with duplicates removed). This could be
problematic in some cases (conflicting compiler definitions among targets).
Changed SublimeClang include path generation to expand to absolute paths.

Fixed an issue where compiler definitions for SublimeClang were not
written to the project file.
Cleaned up the Sublime Text 2 Generator code a bit.
Fixed support for the Ninja build system.
Added and cleaned up some comments.
The generator no longer generates an explicit list of source files.

Now the source directory is simply added to the project file,
with the output/build directory excluded.
The generator no longer generates absolute paths to the ninja.build/Makefiles.
Added a CMAKE_SUBLIMECLANG_DISABLED variable that disables SublimeClang.

If the CMAKE_SUBLIMECLANG_DISABLED variable is on then SublimeClang
is disabled in the generated project file. This is useful in large
projects where SublimeClang might run slowly or perform poorly.
Fixed Sublime Text project generation for in-source builds

Fixed the issue where for in-source builds the source directory
(which is also the build directory) was excluded from the project file.
Merge branch 'master' into sublime-text-2-generator
Define flags in CMAKE_C(XX)_FLAGS are now included in SublimeClang settings.

Changed the the SublimeText2 generator name to Sublime Text 2.

Fixed a minor issue where if the build directory was outside of the source
directory an unnecessary folder_exclude_pattern was generated in the
Sublime Text 2 project file.
Merge branch 'master' into sublime-text-2-generator
SublimeText2 Gen: Improved use of define, include flags from CMAKE_C(XX)_FLAGS

Both define and include flags from CMAKE_C(XX)_FLAGS are now included in
SublimeClang options.

Include directories are now used with absolute paths instead of relative
paths since CMake generated build trees cannot be moved anyway.
SublimeText2 Gen: Fixed the issue where include directory flags used -D
Sublime Text 2 Gen: Per-source Compile flags are now saved in a separate file.

We no longer write sublimeclang_options to the project file, but instead
write a separate .sublimeclang-options JSON file that contains a map
of source file paths to compile flags for that file.
Merge branch 'master' into sublime-text-2-generator
SublimeText 2 Gen: Set the sublimeclang_options_script property.

The sublimeclang_options_script property is now set in the project
file. It is set to execute a python script that reads the JSON options
file to get options per source file. Python must be installed and in the
path for this feature to work from Sublime Text.
Merge branch 'master' into sublime-text-2-generator
Ninja: remove implicit dependency on custom command outputs

Revert aa2e1e9caef92b10083a03c2ded5c937703e69b8
With this commit all files are rebuild when only one moc file has changed.

BUG 0013874