added rawLinAlgMult

and also set up nullspace and solveLinear for use with flint (and soon)
ffpack.
Added zz-flint lin alt, no tested.  Added flint unit tests for rings
fixed initialize, reset, and operations that modify the matrix size

For dmat, not smat.
clean code.  removed unused submatrix function
remove set_submatrix.  Clean some code.
Started to move text_out to DMat and SMat.  Not done yet.
Moved code around so it will compile without FFPACK, FLINT enabled.
3 makefile changes to not echo etags, protect-configs and M2 link line.

These were made since the compilation in emacs24 for me was being
non-robust with these very long lines in the *compilation* buffer.
Added hash value support for ring elements.

For some reason, this had never been done!  Some rings, notably polynomial
rings and Schur2 rings, as well as tower rings, have place holder hash
functions.  Also, the hash function is created at RingElement creation
time: we might want to change this.
Had a typo in an assert, which caused M2 to not compile in debug mode
fixed a bug where ring().clear was being called too early.

It was being called explicitly, and then called when the matrix
went out of scope.