Solve returns correct solution for Equations where denominator becomes 0 (fixes #8666)

With Reference to the issue #8666 

For Equations like: ` x**2 - 1/(x**2 - 4) == 4 - 1/(x**2 - 4) `     - (1)
                               ` x + 1/x == 1/x `                                    - (2) , etc.
(Usually where same terms exists on both sides of the Equation & by cancelling these, solve produces erroneous solution which makes denominator zero )
(Example: earlier solve returned [-2, 2] for Equation (1) & , [0] for Equation: (2))
Now It Returns [] for both of these (as both of them have no solution) and takes care of all such possibilities. 
I have added tests also. 


@smichr  Please have a look.
Both lhs and rhs should be checked, I suppose: `if 'ImmutableMatrix' in [type(a).__name__ for a in fi.args]:`