Use kinematic DEs in calculations of kanes_equations.

Substitute expressions for qdot's when calculating generalized active
forces/inertias. This allows the system formulation to be explicitly
independent of generalized speeds.
Improve kinematic DE error message.

There is no method that allows the kinematic differential equations to
be set after an instance of KanesMethod has been created. Change error
message in methods using the kinematic DEs to make clear that a new
instance of KanesMethod must be created.
Fix sign errors for Fr, Fr*.

- Change calculations for generalized active/inertia forces to more
  closely match with the definitions in Kane's text.
- Fix sign errors for u_i, qdot_i relations.
- Update test_aux_dep() since the signs for Fr, Fr* now match.
Update physics/mechanics doctest.
Add test for KanesMethod in physics/mechanics.

Add a test of KanesMethod with velocity definitions in terms of q's and
qdot's.
Deep processing of cancel() for Piecewise() instances.

Now cancel(Piecewise((e1, c1), ...) returns Piecewise((cancel(e1), c1), ...)

Fixes issue 3923: Calling cancel() on a Piecewise() instance.
http://code.google.com/p/sympy/issues/detail?id=3923
Less trivial test.
Merge pull request #2174 from oliverlee/kmfix

Use kinematic DEs in calculations of kanes_equations.
Merge pull request #2250 from jrioux/piecewise

Deep processing of cancel() for Piecewise() instances.