Change the name of some unit test functions.
Update the header guards with their full name.
Update the name of the test target.
Move the CMake include onto the upper level.
Implementation of the Pimpl idiom.