Conversion to Test Fixture

While I usually prefer libraries to fixtures, this is a case where
wrapping a thin fixture layer around the Testing library makes the
tests a lot easier to work with.

The main goal here is to make the tests easier to read (and,
secondarily, easier to write). Because, while a framework can
be irritating, a ton of stock boilerplate is much much worse.

The main price paid is that the framework uses macros, which carve
names out of the global namespace. The minor price is going to be
some minor confusion about the extra semicolons needed after the
function bodies introduced by UT_CASE(), which are needed because
the body is actually a Lambda, not a function definition.

The upside of using a Lambda is that I think I can trigger addition
of more test cases from within functions, if and only if they are
run before the test itself is run.

Model:

UT_CASE(suitename, testname) {
  {EXPECT,ASSERT}_{OP}(expression, expected_result);
  {EXPECT,ASSERT}_Null(expression);
  {EXPECT,ASSERT}_EX(expression);
}

Implemented: OP = EQ or GE; Null means expression should
compare equal to (void*)0; and EX means evaluating the
expression should trigger an exception descended from Oops.

This design comes after a survey of a number of existing
test frameworks, and noticing that most of them tend to
be derived from the "xUnit" idea. I've taken a machete to
the parts of the design that I anticipate never needing,
and am implementing the ideas de-novo in C++11 as some
things end up being easier.

In the process of bringing up the Test Fixture idea, I ended
up making other changes.

Some of this was motivated by trying to work around issues
in CLion, which I really want to have working.

  - ColVec is dead. It provided modified output printing and
    dot products; these have been forced into Matrix.

  - TriVec is nearly dead. It remains only as a generic pair of
    cross product functions.

  - Quat is now a template. It no longer presumes that the coefficients
    are doubles.

  - Provide operator<< for Log, Suite, and Test.

  - Provide a trivial main() in the testing library, as the
    testing framework is driven entirely by constructors
    and an atexit function.

Also:

  - shift to #incude "../inc/testing_internal.h"

  - Stop warning about missing braces for now,
    still not happy with how quaternions are initialized.