Fix cache to work with unhashable items

The input is checked to see if it is hashable, and if it is not, it is not
cached.

We should verify that this doesn't have a major performance penalty, though I
doubt it will.
Make mutable matrices not hashable (issue 880)

I set __hash__ = None (indicating non-hashablity) on MatrixBase, meaning that
only ImmutableMatrix and ImmutableSparseMatrix should be hashable. I was not
sure if SparseMatrix was supposed to be immutable or not, but I think it is
not.
Fixed mechanics issues w/ immutable matrix

Pretty simple fixes, really just doing things the proper way now. However,
Vector and Dyadic both had their simplfiy method changed from being an in-place
modification to now returning the simplified Vector or Dyadic.
Merge pull request #48 from gilbertgede/matrix_hash_mechfix

Fixed mechanics issues w/ immutable matrix
Merge branch 'master' into matrix_hash

Conflicts:
	sympy/matrices/tests/test_matrices.py
Merge branch 'matrix_hash' of github.com:asmeurer/sympy into matrix_hash
Merge pull request #2276 from asmeurer/matrix_hash

Make mutable matrices not hashable (issue 880)