[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
> Same subs(), which may stuck with numeric evaluation

AFAIR this is a problem with `solve` because it uses `checksol` in some way to validate the solutions. This won't be a problem because `subs` does plain substitution and doesn't use numerical evaluations. Hence I guess it is pretty cheap and doesn't have significant performance overheads.