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.
Writing the RootSystem class
Merge remote-tracking branch 'sympy/master' into derivsubs

Conflicts:
	sympy/core/function.py
Made the following changes
1] Added ode_1st_power_series for first order differential equations
Adding more functionality to RootSystem
Updating classes to use __new__ instead of init
Fixing some doctest errors
Merge branch 'master' into seriessolve

Conflicts:
	sympy/solvers/deutils.py
	sympy/solvers/ode.py
	sympy/solvers/tests/test_ode.py
Imlement and UnXFAIL Wester test_H24
Implement and UnXFAIL Wester test_J2
Fix and UnXFAIL Wester test_H2
test for issue 2073
XFAIL in gruntz for 2073
Fixing trailing whitespaces
Missed type_d in fixing trailing whitespaces
Added references for LMQ and real root isolation
Made following changes
1] Moved boundary conditions out of power series classification
2] Rectified test failures
3] Added doctest
4] Removed power series out of best hint
Added order term
Changed:
1] Minor whitespace error
2] Modified power_series hint such that doctest does not hang