Separable reduced equations first implementation

Solves an equation that can be reduced to the separable form.

The general form of this equation is y' + (y/x)*H(x^n*y) = 0
This can be solved by substituting u(y) = (x^n * y)

The equation then reduces to the separable form
 u'*(1/(u*(power - H(u)))) - (1/x) = 0 (see the docstring of ode_separable())


    Examples
    ========

    >>> from sympy import Function, Derivative, pprint
    >>> from sympy.solvers.ode import dsolve, classify_ode
    >>> from sympy.abc import x
    >>> f = Function('f')
    >>> d = f(x).diff(x)
    >>> eq = (x - x**2*f(x))*d - f(x)
    >>> dsolve(eq, hint = 'separable_reduced')
    [f(x) == (-sqrt(C1*x**2 + 1) + 1)/x, f(x) == (sqrt(C1*x**2 + 1) + 1)/x]
    >>> pprint(dsolve(eq, hint = 'separable_reduced'))
                 ___________                ___________
                /     2                    /     2
            - \/  C1*x  + 1  + 1         \/  C1*x  + 1  + 1
    [f(x) = --------------------, f(x) = ------------------]
                     x                           x

References
==========

- Joel Moses, "Symbolic Integration - The Stormy Decade",
  Communications of the ACM, Volume 14, Number 8, August 1971, pp. 558