Add tribool and tests.

Also updated Catch to a more recent version.
Suppress doxygen output and allow invoking doxygen through ninja.
Better build systems