in ``roots_cubic`` simpler solution of ``x**3 + q = 0``
added ``_try_rescale`` in ``roots``

```
>>> from sympy import *
>>> from sympy.abc import x
>>> eq = expand(((x**2-1)*(x-2)).subs({x:x*(1+sqrt(2))}))
>>> solve(eq, x)
[-2 + 2*sqrt(2), -1 + sqrt(2), -sqrt(2) + 1]
>>> count_ops(_)
10
```
while in master ``count_ops`` gives 732
call ``roots`` after ``_try_rescale``
added test
added _try_rescale to roots; added example
call ``_try_decompose`` if ``_try_translate`` fails
fixed bugs in ``roots``
refactored code in ``roots`` to ``to_rational_coeffs``
Added ``_torational_factor_list``
restrict ``to_rational_coeffs`` to transform only polynomials without
roots larger than 2.

Added tests.
fixed docstring format
Merge pull request #2006 from pernici/cubic

Cubic