[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
In my original note I gave two solutions on how to specify that x was real.  The first used old assumptions, the second new assumptions.  I'm not sure we understand each other here.

Your original question was how to input the information that we were dealing with real values.  My general answer is "using assumptions", whichever assumptions system that might be.