Replace cppunit with the googletest framework

The GTest framework has a more active support base, and natively
supports CMake. Introduce it as an external dependency (using CMake's
ExternalProject_Add), replacing cppunit and porting the associated unit
tests.