[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
- [ ] write 4 tests to complete coverage
- [ ] correct typo
That's going to get annoying; the warnings module should be used:

```
import warnings
from sympy.utilities.misc import filldedent
warn(filldedent('''
    The variable you are solving for is complex
    but will assumed to be real since solving complex
    inequalities is not supported.'''))
```