Refactored QR to separate decomp. from solves, added pseudo-inverse.
* Renamed to qr.c to better reflect what it now does.
* Split off decomposition into a separate routine, added solve and
  invert routines using this decomposition.  Reworked linsolve driver
  to use them.
* Made ill-condition detection using singular values a bit more
  robust by multiplying by FLT_RADIX.  I didn't think this was needed
  but it seems to make a lot of difference in simulations.