Created a CMake build. Consolidated some classes. Added unit test framework