Linearize class

This is a rewrite of the linearization methods in physics/mechanics to be more general. At this point, all previous functionality is supported, with a more modular structure. This pull request includes:

- A `Linearizer` class:
Holds the system in the generalized form, performs the actual linearization with the `linearize` class method.

- A `to_linearizer` method for the `KanesMethod` class:
This returns an initialized instance of `Linearizer`

- A `linearize` method for the `KanesMethod` class:
This creates a `Linearizer` instance, calls the `linearize` method, and returns the result in one step.

Tests have been created for the new functions, and the old tests have been updated to use them.
This probably should not be default True. In general, simplification routines should always be optional the default should be to not do it.