cmake: Model normal and try-compile project kinds explicitly Construct with the project kind instead of mutating state after construction.