[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
Thanks for the suggestion, but with https://github.com/hargup/sympy/commit/4e43df7a6b3ce8e2b5f8fd513ad979787e293c0e
the domain of the variable is decided by the assumption on the symbol. Hence the error message is now obsolete.