wip. Restructure cmake configuration management

cmake_project provides wrappers around the raw configuration structs
which maintain consistency of the generated config.