Reorganized the CMake script and source file structure so each program gets its own folder