Start of optimizations of mechanics code

- Removed `_mat_mul_inv` in favor of LUsolve. This provides a
  significant speed boost.

- Added `msubs` function. This is a custom `subs` that replaces the old
  `_subs_keep_derivs` function, but does its work in only one pass,
  while providing checking for `nan` and `oo` in the expression tree.
Fixes to KanesMethod.to_linearizer

Small change to utilize existing KanesMethod attributes in forming the
general form representation. Also refactored __init__ of Linearizer to
pull slow code out into separate function to be run on first call to
Linearizer.linearize. This trades faster object creation for a slower
first method call.
Run the dispatching in simplify() first
Revert to using msubs in KM.to_linearizer

It's slightly slower to partition with msubs than using KM._f_d
and KM._k_d, but results in a significantly smaller expression
size - yielding overall gains.
Always sympify in simplify()
Bugfix in msubs

Added missing call to _recurser in _smart_subs.
Start of refactoring of KanesMethod Class

Refactoring to improve readability, remove dead code, and improve
efficiency. What's done so far:

- __init__ (and all _initialize* methods) rewritten in more readable
  style.

- Some dead code/unused attribuetes removed

- Internal state is no kept in matrices, not lists.
Continuation of KanesMethod Refactor

- Cleaned up code to be more readable, no major changes in algorithms.

- Added option to msubs to accept several dicts as *args.
Added more Tests
Continuing work on KanesMethod refactoring

- Pulled out _find_dynamicsymbols into a separate function
- Deleted unused _othersymbols function
- Refactored out _partial_derivatives class method
- Some code cleanup
- Added tests for find_dynamicsymbols and msubs
Add fastcache as an optional depency.  Use fastcache for travis tests
Split geometry.rst into module specific files and also add rsts for new geometry modules
Added dyadic code, WIP
Dummy commit
Polished code, tests pass
Updated to fastcache 0.4.0 api and change test splits with fastcache
Add check to ensure that proper version of fastcache is being used
roots allows trig keyword: return cubic roots in terms of cos
Merge branch 'master' of https://github.com/sympy/sympy into dyadicvector
Code quality changes, moved rdot code