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.
Oh, I haven't pushed the changes yet. Was making sure there weren't more doc fixes to make so I didn't have lots of little commits. I'll push it in now.