VS: Convert 'WriteSource' tool argument to std::string
VS: Refactor handling of "extra" sources in VS >= 10

Create a WriteExtraSource method to handle writing of sources not
classified by cmGeneratorTarget for any particular purpose.  This
will be useful to add special VS-specific handling for some sources.
VS: Refactor handling of "header" sources in VS >= 10

Create a WriteHeaderSource method to handle writing of sources
classified by cmGeneratorTarget as header files.  This will be
useful to add special VS-specific handling for some headers.
VS: Refactor handling of resx headers

Move generation of the ClInclude element to WriteHeaderSource.
VS: Map .appxmanifest sources to AppxManifest tool

Inspired-by: Minmin Gong <minmin.gong@gmail.com>
VS: Map .xml to XML tool

Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
VS: Map .jpg and .png sources to Image tool

Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
Merge topic 'vs-refactor-source-tools' into next

0ac28adc VS: Map .jpg and .png sources to Image tool
58bb14d4 VS: Map .xml to XML tool
972cf1d7 VS: Map .appxmanifest sources to AppxManifest tool
15fb1022 VS: Refactor handling of resx headers
c2ef6d23 VS: Refactor handling of "header" sources in VS >= 10
2df38911 VS: Refactor handling of "extra" sources in VS >= 10
143b4005 VS: Convert 'WriteSource' tool argument to std::string