Adding Quat: start with the test.

In fact, this is just the outer scaffold of the test, indicating
that -- yes -- we will be testing in the near futrue that we can
construct something called a Quat.
Add the Quat class.

This commit adds the files, with a very bare bones Quat
class with a constructor and a printer.
Exclude test programs from pmccabe.

I want to use McCabe analysis to find the complicated
parts of the main code, without being distracted by
the fact that test code has a lot of conditionals.
Bad type decision in C++ "streams" library

For a given iostream s, "s.width()" returns the value
recently given in an "s << setw(n)" directive. Alas,
the type returned by s.width() may have values that
do not fit in the "setw()" parameter.

Somwehere, we need a conversion. Do it when we fetch
the incoming requested field width.
Quaternions have scalar and vector parts.

  * scalar part is "double"
  * vector part is "TriVec"

  * Default constructor sets them to zero.
  * Add constructor to initialize them.
  * Add access functions to operate on them.
Quaternion == and != operators

Note that all the usual warnings for comparing two floating
point numbers for equality apply to Quaternions composed
of floating point numbers, but this does allow us to test
quaternion operations where the values do not involve
inexact arithmetic.
Inline the quaternion constructors.

Really no reason not to, at this point.