* refactor: break out CMakeLists.txt Make things more manageable by breaking out sections of the monolithic CMakeLists.txt into separate files