cmake: Model normal and try-compile project kinds explicitly

Construct with the project kind instead of mutating state after
construction.
6 files changed