add tests for spsolve
add support for ndarray inputs in spsolve
FIX: spsolve deals with vectors improperly
BUG: sparse boolean indexing

occurs when the boolean index array has too many columns,
but the extra columns are all `False`
adapting test case to numpy-like behavior
allowing false-only indexing
add benchmark test for optimizers
add several more test optimization functions

update the benchmark framework to allow multiple starting points
add another benchmark function (Booth)
Add Beale's function
change wording
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
use numpy test benchmarking framework

Mostly I had to conform to the function and class naming scheme and call
numpy.testing.Tester().bench()
add grouping scheme for functions of similar type

I put them in a class BenchSmoothUnbounded()
print the number of dimensions
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"