BUG: buttap() should produce a purely real pole

Previously buttap for odd orders produced a pole like -1+6.1e-17j rather than -1+0j exactly.  This makes poly(p) complex, though all the imaginary parts are negligible.

Now the calculation is symmetrical, so the middle term works out to -exp(0j), which is exactly -1+0j.

Discussion here: http://mail.scipy.org/pipermail/scipy-dev/2013-February/018376.html

cheb1ap and cheb2ap have the same issue, but I didn't change those yet.

Also should add some kind of test like this:

```
for N in arange(1, 26):
    for btype in ('low', 'high'):
        for ftype in ('butter', 'bessel', 'cheby1'):
#          'cheby2', 'ellip' aren't symmetrical yet
            z, p, k = iirfilter(N, 1.1, 1, 20, btype='low', analog=True, ftype=ftype, output='zpk')
            assert_array_equal(sorted(z), sorted(z.conj()))
            assert_array_equal(sorted(p), sorted(p.conj()))
            assert_equal(k, real(k))
```