Rename *.h to *.hh

Might help some tools know that these files
are C++ files, not C (or ObjectiveC).
Rename ThreeVec to TriVec

Brings this inline with some code I wrote long ago.
Add Test::is_T(cond,msg) and Test::is_F(cond,msg)
Add operator<< for printing TriVec objects to Streams.

This allows me to shift to using t.eq() for my
vector unit tests.
Add tests for ColVec multiplication

Test the results of multiplication of a column vector
by the transpose of another one of the same size,
oth ways. For ColVec<N,T> P,Q we have:

    P*~Q is a Matrix<N,N,T>
    ~P*Q is a Matrix<1,1,T>
Specialize matrix multiply so dot product is a scalar.
Matrix Scalar Multipy and Divide.

NOTE: for "scalar * matrix" this implementation assumes
that multiplication is commutative over the type of the
element of the matrix.
Drop some unneeded includes

Also, reformat the newer bits of code.
Document matrix print methods.
Merge pull request #36 from Farsyte/development

Misc things before starting Quat
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.
Merge pull request #37 from Farsyte/development

First parts of Quaternion
Merge project update into pages branch.
Documentation Update.