Start building Simple::Quat

Standardize on using Simple::Col as the 3-vector,
so advertise it via the "Simple::V" typedef.

Allow "C Struct" style initialization, as with Row/Col/Mat.

Provide the following operations:

  * Default Constructor initializes to all zero
  * Construct from a T and a V
  * Comparison (== and !=)
  * Unary negative (-Q)
  * Add ops: (Q += Q), and (Q + Q).
  * Sub ops: (Q -= Q), and (Q - Q).
  * Mul ops, Scalar: (Q *= s), (Q * s), (s * Q)
  * Div ops, Scalar: (Q /= s), (Q / s)
  * Two-Norm: normsq(Q) and norm(Q)
  * print representation to an I/O stream
[bamboo] Automated branch merge (from dev-quat:c52fcfaa958d1de4d3af26ac7ced9505c38149d9)
Quaternion Conjugate for Simple::Quat
[bamboo] Automated branch merge (from dev-quat:0565b53ea9a6ebcedd2d919629fd796df007c917)
Discard Simple::Quat scalar() and vector() methods.

These make the resulting code ugly and harder to read than
it needs to be. Instead, just access the .w and .v members
directly. I am only slightly uncomforatable about exposing
this implementation detail.
[bamboo] Automated branch merge (from dev-quat:1f5bb15ac949450be2803718f5456f54c3c04a2e)
Simple Quaternion Multiply
Construct simple quaternions from just T, or just V.
[bamboo] Automated branch merge (from dev-quat:b44692e6eb9b154f8d51716513a450dffcf9013b)
Allow implicit T=>Quat and V=>Quat conversions.

Moving the == and != operators out of the class so that
we can compare (T == Q) and (V == Q).

Add tests to assure those comparisons work.
[bamboo] Automated branch merge (from dev-quat:82e71b38587b467bd6a4a63af1048c9b2d04b68e)
Quaternion Division.

Dance around the floating point compares by rounding
the actual result before comparing it.
[bamboo] Automated branch merge (from dev-quat:f8a42720184528ce2744fc0e7d44b5727ecfe98b)
Quaternion Rotation of Vectors

  * apply a quaternion as a function to a vector
    to rotate the vector; implements (Q * V * ~Q).
  * cast a quaternion to a matrix to get the equivalent
    rotation matrix for application to many vectors.
[bamboo] Automated branch merge (from dev-quat:2456b862a4a376849cf385b404cefbcae363db80)
Quaternion to Matrix conversion MUST be explicit.
Provide Simple::Q as a typedef for Quaternion

Matches the others:
  R => Row
  V => Vec is really Col
  M => Mat
Provide (Mat * Col) operation, use it in Quaternion test code.
[bamboo] Automated branch merge (from dev-quat:1d5459ddfea17ee1d3b21f2a50f5b1b34e0094d9)