Changed behaviour of Dot acting on matrices in MatrixForm

When Dot is passed 2 arguments it calls directly Inner but this gives a wrong result if the two matrices are in MatrixForm (see #145) and raises an error if only one of them is in MatrixForm since it detectes that the heads of the two arguments are different. The proposed change mimics the behaviour of Mathematica, if one or both matrices are in MatrixForm, the expression is left unevaluated.