ENH: Add 'lp' and 'hp' to band_dict
(since 'bp' is there and functions like 'lp2hp' imply it)
BUG: Use zpk in iirfilter to improve accuracy of higher-order filters

Previously iirfilter converted to tf representation internally, which is not numerically stable for high filter orders or cutoff frequencies close to 0.  Now it uses zpk format internally to improve accuracy.  Currently this uses private functions like _zpklp2lp, but they should eventually be merged into the existing lp2lp etc functions or made into their own functions, when a decision is made on the best way to do that.
BUG: Make all filter design functions return empty arrays for N=0
ENH: Clearer error message for incorrect Wn size
Previously it said "IndexError: 0-d arrays can't be indexed"
Combine bandpass and bandstop calculations for DRY
Also add quotes to error messages
BUG: fftconvolve should raise error for invalid mode instead of doing nothing
ENH: Add check for negative or fractional filter orders (besselap already does it)

Indent imports

Use string for error or else besselap says "not supported for order 3" when it means "not supported for order 3.5"
MAINT: Fix error message for zero, is not positive
DOC: More detailed dosctrings for _zpkbilinear, _zpklp2lp, etc.
DOC: the type of `exact` parameter
`comb` support combinations with repetition
add tests for comb
add `perm` function
DOC: Fix "bandstop" in 2 lp2bs functions
add tests for `perm`
fix tests fail
some cleanup
fix tests fail
move comb and perm to scipy.special
use special.binom to compute comb
BUG: don't use _valfrommode for correlate/convolve, since it accepts a numerical mode without raising an error, but then correlate doesn't handle it correctly.