Overlap-save FIR filtering

This is substantially faster than `filt()` when the filter is long, and substantially faster than `conv()` when the signal is also long. The function `firfilt()` heuristically chooses whether to use time domain or FFT-based filtering depending on the estimated speeds of the two techniques.

Implementation notes:

- fftfilt() computes the optimal chunk size for the FFT based on
  average times on my computer for transforms of powers of 2 up to
  2^28. There might be a way to get relative transform times from FFTW,
  but if there is it doesn't seem to be documented.
- fftfilt() copies data to temporary arrays. It is in principle
  possible to perform the transform in place if the chunks are
  processed in reverse order, provided that the chunks will be 16-byte
  aligned. I tried this and it wasn't substantially faster.