Generalized Linearization Routine

The following changes were made to the Linearizer Class:

1.) Now accepts if q, u, or any of the f_# generalized terms
are empty matrices. Linearization proceeds as it should.

2.) Broke the linearization process into a couple "private"
class methods. The ones done so far only need to be run once
upon initialization. This should save calculation time if the
user intends to do multiple linearizations about different
operating points.
Changes to Linearizer and Related tests

- All tests now are valid and pass
- Improved doc strings, still needs more work
- Modified tests for KanesMethod to use the new functionality

Now have the same functionality as before with linearizing
KanesMethod objects, but code is more generalized and easily
extended.