Added CMake + gtest testing, support for platform specific code