Improve subs for Derivative.

Perform substitutions if derivative variables are in a different, but
equivalent order and perform substitutions for subderivatives.
Add additional tests for Derivative subs method.
Merge remote-tracking branch 'sympy/master' into derivsubs

Conflicts:
	sympy/core/function.py
Cleanup contains method and drop _contains helper
Catch NotImplementedError in contains(), return None
Updated classify_diop() and diop_solve()
Few changes
Added general pythagorean equation
Doctests added
simplifications
Fixed a bug
Merge branch 'master' into Diophantine_Equation_Module_III
Fixed a bug
Replaced while with xrange
general sum of squares implemented
Docs added to sphinx
Fixed doctests
Fixed doctests
Fixed test failure
Power representation implemented