1654: subs() now substitutes lower derivatives into higher order ones

Now sympy is able to properly substitute:

    >>> diff(f(x, y, z), x, y, z).subs(diff(f(x, y, z), x, y), g(z))
    diff(g(z), z)

In case of unevaluated Derivatives that do not have sorted variables,
substitution will be carried out only if there's exact matching of the
first variables of differentiation with the pattern:

    >>> Derivative(f(x, y, z), y, x, z).subs(Derivative(f(x, y, z), x, z), g(y))
    D(f(x, y, z), y, x, z)
    >>> Derivative(f(x, y, z), y, x, z).subs(Derivative(f(x, y, z), y, x), g(z))
    D(g(z), z)