Now users can state compiler paths, and we write out an initial cmake cache.

With the ability to write out an initial cmake cache values, it means
that the generator type, configuration type, and now compiler types are
properly saved even if the user decides not to run ccmake.