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.
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.
cmMakefile: Track configured files so we can regenerate them (#13582)

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 'makefile_AddCMakeOutputFile_signature'

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

ad50250 cmMakefile: Track configured files so we can regenerate them (#13582)
4a6397a Ninja: Track configured files so we can regenerate them.