Incorrect Exception in dsolve() : First implementation

This pull request is related to the issue http://code.google.com/p/sympy/issues/detail?id=1996

As mentioned in the above link , dsolve() returns wrong exceptions when it is not solvable , and the hint is either invalid or incorrect. I've changed it so that it raises the correct Exceptions.

    from sympy import *
    from sympy.abc import x
    f = Function('f')
    dsolve(f(x).diff(x)**2, f(x), 'separable')  #This now gives the correct ValueError
    >>>  ValueError: ODE Derivative(f(x), x)**2 does not match hint separable

Also , as mentioned in the link , as needed

    dsolve(f(x).diff(x)**2, f(x), 'fdsjf')  #This should give ValueError for incorrect hint
    >>>  ValueError: Hint not recognized: fdsjf

Do look at the code for changes required.