cmGlobalGenerator: Create a non-virtual 'DoGenerate' method

Make the virtual 'Generate' method protected.  Make 'DoGenerate'
the main entry point to generation.  This gives cmGlobalGenerator
a chance to do some early operations before the individual
generator-specific implementations take over.
Merge topic 'refactor-generator-startup' into next

f5c0efdb cmGlobalGenerator: Create a non-virtual 'DoGenerate' method