Update Matrix requirements.
Add ColVec requirements.
Add more stuff to matrix.h

  - all of the promised public types
  - use RANGE_CHECKER if it is defined
  - ColVec construction from a 1-D array