CMake: Move macro functions to cmake/TundraUtils.cmake to clean up messy main CMakeLists.txt. Add GetSubDirectories macro.
Windows throws a fit if JSONValue::GetObject() is called. The windows.h GetObject/GetObjectW macros kick in. Undefine GetObject to go around this.
New JSON tests. Change all gtest EXPECT_ to ASSERT_ to stop test execution immediately on errors.