Fixed value for `coth(0)`

coth(0) = zoo (Complex Infinity)
For reference: http://www.wolframalpha.com/input/?i=coth%280%29
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.
Added coordinate systems code
Create auto update mechanism for development docs [skip ci]
LRU style caching.

Makes use of functools.lru_cache when possible otherwise backport
of lru_cache from
http://code.activestate.com/recipes/578078-py26-and-py30-backport-of-python-33s-lru-cache/.
Merge remote-tracking branch 'refs/remotes/upstream/master'
Cleanup
Cleanup
Merge branch 'lrubackport'
Added `solve_multipliers` to LagrangesMethod

Added a function to solve for the value of the multipliers at a
given operating point. Returns either a dict of {symbol: value}
(default), or a column matrix of the solutions. Also added a test
case that has constraints to test this method.
Merge branch 'LinearizeClass' into LagrangeImprove

Conflicts:
	sympy/physics/mechanics/functions.py
	sympy/physics/mechanics/kane.py
	sympy/physics/mechanics/linearize.py
	sympy/physics/mechanics/tests/test_linearize.py
Added `linearize` method for LagrangesMethod

Created `linearize` class method for LagrangesMethod class.
Change absolute import to relative import
Merge pull request #7634 from sushant-hiray/coth-fix

Fixed value for `coth(0)`
watch for improper separation of base and exp in powsimp

e.g. sqrt(x**a) should not be split as x**a, 1/2 otherwise
it will rejoin as x**(a/2) later -- this is noted with an
inline comment.

For example, consider sqrt(exp(x)) which previously simplied
to exp(x/2). It is easy to demonstrate that these can be different:

>>> eq = sqrt(exp(x)) - exp(x/2)
>>> eq.subs(x, 3 + I).n()
-7.86610435188672 - 4.29727239280679*I
Merge remote-tracking branch 'upstream/master'
Implement __ne__() by calling __eq__()

The __ne__() operator should return "not __eq__()". Alternatively, one can copy
& paste the algorithm from __eq__() and negate the answer right before each
return. But anything else means there is a potential bug.
Merge pull request #7636 from smichr/pow

remove positive kernel handling
Fixed PropKB. Added valid and entails
Update piecewise.py

Corrected a typo.