Added support for lambdification of MatrixSymbols

Now `lambdify((A, B), A*B)` where A and B are of type `MatrixSymbol` results in `A.dot(B)`.

Also, removed the kwarg `use_array` from lambdify. Default behavior is not to always return np.array.

Fixes #7284