Changed the `cpp-unit-test` plugin to behave more like the `xctest` plugin, so that it will compile and run the test suite when there is no component under test present, and to use a similar naming scheme for tasks and directory names. Re-added a type to represent an executable built for tests implemented in C++.
Introduced a native testing base plugin, to take care of common aspects of native test support. Currently simply adds some lifecycle tasks. Introduced an abstraction to represent a native test suite and renamed `testExecutable` to `testBinary` on each of the native test suite types.