Modified LagrangesMethod.rhs() to use _mat_inv_mul

This was a TODO, and is more consistent with the KanesMethod
object.
Fixed tests for lagrange

Accidently ran test suite on the wrong branch before committing.
Fixed a couple errors, and added a simplify step to one of the
tests. Looks like this method of solving may result in a less
simplified expression depending on the input.
Fixed doctest for rollingdisc_example_lagrange

Fixed the doctest to pass after this change. Fixed code quality
issue in lagrange.py.
Refactored mat_inv_mul into separate function

mat_inv_mul has been moved to functions.py. Test has been moved
to test_functions.py. KanesMethod and LagrangesMethod classes
have been modified to reference this function. Link for inv() method
has been added into the docstrings of rhs() in both these classes.
Deprecated method kwarg in LagrangesMethod.rhs

Added deprecation warning for method kwarg for LagrangesMethod.rhs.
Changed mat_inv_mul to _mat_inv_mul.
Fixed issue of structural equality and hash in tensor module (__eq__ and __hash__ no longer overridden)
Merge pull request #7357 from Upabjojr/tensor_eq_issue

Fixing issue of structural equality and hash in tensor module
Merge pull request #7252 from jcrist/lagrange_mat_inv_mul

Modified LagrangesMethod.rhs() to use _mat_inv_mul
add missing dispatch decorator to Transpose
Merge branch 'master' into multiple-dispatch-play
Merge branch 'multiple-dispatch-play' into refine-simpler