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
Updating classes to use __new__ instead of init
Enable if x.is_positive is branch in series()
Workaround in Function._eval_nseries to prevent some substitutions in the Derivative

    For example: Subs(Derivative(f(x), x), x, 0).subs(x, y) ->
                 Subs(Derivative(f(x), x), (x,), (y,))

    This is a fix for failed test:
    File "/home/sk/src/sympy/sympy/series/tests/test_series.py", line 86, in test_879
      assert f(x).series(x, 0, 3) == \
Less naive lseries/nseries methods for Integral

    Detect cases, when we should expand on the integration
    variable (dummy symbol).
Correct assumptions for auxilary symbol xpos: it should be is_bounded as well
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
Drop unused skip_abs option for Expr.compute_leading_term and calculate_series

    This was introduced in 89c7626 and then this option was unused since 9c46974
Drop obsoleted docs about skip_log option of compute_leading_term()

    This was replaced by logx option in 9c46974d
Fixed a bug
Merge branch 'master' into Diophantine_Equation_Module_III
Fixed a bug