Added deprecation warning for old linearize method

Deprecation cycle plan:
- User must use kwarg `new_method=True` to use the new
functionality.
- If the kwarg is absent or false, the old method is used and a
SymPyDeprecationWarning is thrown.
- After the next release, the old method will be removed, and the
need for this kwarg also removed.
Code cleanup, major docstring edits

Fixed lots of little things. Major edits to the docstrings to fit
the numpydoc format. Some code refactoring as well. Removed the
_general_form method in KanesMethod, as it was small, and fit
better with to_linearizer. Added linearize.py to __init__.py.
Changed linearize interface for op_points

Now have one kwarg instead of several. `op_point` can be either
a single dict, or an iterable of dicts. Results in simpler
interface, and we were combining them all internally later
anyway.
Changed Linearizer to use LUsolve instead of inv

Now calculates A = P.T*M.LUsolve(Amat), insead of
A = P.T*M.inv()*Amat. This results in a significant decrease in
calculation time. `inv` was replaced with this `LUsolve` method in
all locations in Linearizer.
Added kwarg `simplify` to Linearizer class

Allows for optional simplification of return values before
return from linearize call. Defaults to True.

Several different methods of simplification were tested, and all
were slower than just calling simplify on the matrices. `trigsimp`
resulted in the same thing as `simplify`, but took 5 times longer.
Currently, calling simplify seems to be the best method.