[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
I think what he means is that you don't need the `use_unicode` flag. I do agree it is useful to have pprint in doctests where it improves readability (c.f., the ODE module doctests).