Bind version numbers to header guards.

This change grew out of some tinkering with CLion, which is
able and willing to report macros that are defined but are
never used. Seems useful, so assure that the guard macros
do not clutter the warning lists.
Reorganize imports

Collect all #include lines and sort them.
Collect all using lines and sort them.
Drop nested arrays. Provide [] operator for colvec.
Matrix subscript tinkering

  - Institute array bounds checking.
  - Shift back from 1-base to 0-base array indexes.
  - Provide operator[] for linear access to all matrix data.
No longer need helper functions for clean matrix init.

Still not as clean as I would like.