BUG: change real output checking to test if all imaginary parts are zero

Some arrays should produce real output but don't:

```
In [144]: poly([1j, -1j])
Out[144]: array([ 1.,  0.,  1.])

In [145]: poly([1j, -1j, 2j, -2j])
Out[145]: array([ 1.+0.j,  0.+0.j,  5.+0.j,  0.+0.j,  4.+0.j])

In [146]: _.imag == 0
Out[146]: array([ True,  True,  True,  True,  True], dtype=bool)
```

I think the check was meant to be `sort_complex(conjugate(...` rather than `conjugate(sort_complex(...`, which would work, but checking that the imaginary parts are exactly zero is equivalent and simpler anyway.