Recursion, hashCode issue and a few other suggestions

Mikio I thought I'd suggest a few more things. This patch fixes what seems to be an inadvertent infinite recursion in ComplexDoubleMatrix.putReal; it just calls itself instead of the method that takes `int[]`. I also believe that equals() needs to be defined to be transitive, so needs exact-equality semantics, and needs a hashCode() as well, in the Complex* classes. What do you think?

I also put in a few changes from inspection along the way, like removing unused imports, avoiding a manual array copy, etc. Really small things.