[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
Instead of doing random search (this will work only for `Pow(poly, Rational)=poly`) - you can solve polynomial equations in y, where y is some radical, e.g. `y=sqrt(x)`.

And, probably, this strategy is the same as for your \_solve_univariate_real_trigonometric_2.  Another poly generator - the only difference.