[WIP] Rewriting the Univariate Solver

This PR aims to rewrite a cleaner and robust univariate equation solver.
    - [x] polynomial
    - [x] rational
    - [x] trigonometric
    - [ ] functions solvable by LambertW
> we silently return wrong solutions

We were doing it earlier now we don't. BTW the current solver gives a wrong output due the same reason. See https://github.com/sympy/sympy/issues/7870