issue 4046: better handling of Abs in solve

Since solve doesn't support infinite solutions, if the
argument of Abs is not real, an error message is raised. To do otherwise
would be to give a solution that has limited applicability (returning
+/-y for x satisfying abs(x) == y) or is simply wrong

>>> solve(abs(x)-I)
[-I, I]
>>> [abs(w) == I for w in _]
[False, False]