Mechanics improvements

Improvements to a pile of things in `sympy.physics.mechanics`. In order of importance:

- Addition of `msubs`: a specialized subs function for use on the large expressions in `mechanics`
- Pulled out common `find_dynamicsymbols` code into a function of that name. Finds all the dynamicsymbols in an expression. Optional `exclude` kwarg to ignore certain symbols.
- Speed improvements to all `Linearizer` and related methods. Runs approximately twice as fast now.
- Refactor of `KanesMethod` and `LagrangesMethod`

The refactoring was mainly to:
- Remove dead code (there was some in both)
- Improve readability
- Make some code more pythonic
- Improve efficiency.

The overall useage of each class is the same, no user facing changes.
It could, as we're pulling from `vector` already. Would avoid chance of circular imports. How about we get this merged, then you can move it to where you'd want it/update your code to use it? I wouldn't know what to do with it inside `vector`.