file(GENERATE): Re-run cmake when appropriate.

Re-run if the input file changes or if the output file is removed.

This only works with the Makefile generators currently.  The limitation
of the Ninja generator is tracked as issue #15256.  The IDE
generators will need larger refactoring as they currently rely on
being able to determine the depends and output files at the start of
generate-time, which is too early for the file(GENERATE) case.
Merge topic 'file-GENERATE-rerun' into next

26e98c34 file(GENERATE): Re-run cmake when appropriate.