[WIP] Rewriting the Univariate Solver

This PR aims to rewrite a cleaner and robust univariate equation solver.
- [ ] Univariate
    - [x] polynomial
    - [x] rational
    - [ ] trigonometric
    - [ ] functions with exp and log
- [ ] Multivariate
I traced it to PR https://github.com/sympy/sympy/pull/1964, but reading the commit message didn't crossed my mind. btw it looks like I won't need `sin(x).inverse()` so I'll revert the commit reverting this change.