cmMakefile: Refactor AddCMakeDependFile  and AddCMakeOutputFile.

AddCMakeDependFile and AddCMakeOutputFile both store as std::string
and all calling sites use std::string. So instead of creating more
temporary objects, lets just use std::strings.
Merge branch 'makefile_AddCMakeOutputFile_signature' into 13582_configured_file_regeneration
cmMakefile: Track configured files so we can regenerate them.

Currently when a configured file is removed from the build directory,
running the build command will not regenerate the file. Now detect
this and will rerun cmake properly when a user issues the build
command.
Ninja: Track configured files so we can regenerate them.

Unlike the Makefile generator the ninja generator did not tack any of
its output files, so if they are deleted the generator would not run.
Merge topic 'makefile_AddCMakeOutputFile_signature' into next

6dbd4a5 cmMakefile: Refactor AddCMakeDependFile  and AddCMakeOutputFile.
Merge topic '13582_configured_file_regeneration' into next

578efdf cmMakefile: Track configured files so we can regenerate them.
4878649 Ninja: Track configured files so we can regenerate them.
4807eeb Merge branch 'makefile_AddCMakeOutputFile_signature' into 13582_configured_file_regeneration
cmMakefile: Pass std::string instead of a const char*.
Merge topic '13582_configured_file_regeneration' into next

7b7dd69 cmMakefile: Pass std::string instead of a const char*.
cmMakefile: Track configured files so we can regenerate them.

Currently when a configured file is removed from the build directory,
running the build command will not regenerate the file. Now detect
this and will rerun cmake properly when a user issues the build
command.
Merge topic '13582_configured_file_regeneration' into next

c77b275 cmMakefile: Track configured files so we can regenerate them.