Improvements to inequality solving

fixes #8206 (please feel free to any others that are related that also work with these changes)
fixes #8518
Also, you break not just somewhat private inequalities function, but `solve` interface too.  I think that's NOT ok.

Or do we assume that symbols are real in other cases for solve?