check for trivial roots before attempting factoring

Although it is easy to order the binomial roots, if a binomial is allowed
to factor then the procedure to order the roots is time consuming and can
fail.

>>> Poly(a*x**n+b,x)
Poly(-4*x**8 + 1, x, domain='ZZ')
>>> factor(_)
-(2*x**4 - 1)*(2*x**4 + 1)

If the all_roots is called on the Poly, an error will ensue:

NotImplementedError: 2 element rule
add explicit test from 8255