Add support for GTest based UnitTests

No support for MSVC at the moment. Fairly basic but should be enough to start adding tests for a few things.