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
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: Fix "bandstop" in 2 lp2bs functions
DOC: Add note about DC gain for equiripple passband filters
BUG: 0-order cheby1 and ellip should have gain of -rp, like other even-order filters
Partial revert of b2aa105
TST: Add tests for IIR filter functions
TST: Use almost_equal for float equality testing
MAINT: Use simpler formula for 0-order gains
MAINT: split distributions.py into three files
MAINT: remove globals() as suggested by @evr-br
ENH: condition number for matrix exponential
MAINT: comment wording
TST: add a condition number test for a matrix that is badly conditioned with respect to expm
TST: expm condition number 1x1 tests
limit search ranges in cdfchn.f