RFC: filt improvements

I've made a handful of improvements and extensions to the `filt` function on the way to adding `filtfilt` to DSP.jl.

* This redefines `filt` as `filt!` with a few modifications to perform its filtering in-place. `filt` is defined as a simple wrapper, copying the vectors that `filt!` modifies.
* Both `filt` and `filt!` now accept an optional fourth argument argument for the initial filter state vector. ~~This vector is modified in-place in `filt!`~~
* `filt!` takes an optional fifth argument for its output array.  This can alias the input, and it does so by default.
* ~~The default filter state is now automatically computed such that its response to a step function is steady state.~~

Here's an example of why *allowing* that third part is important. This is a 5 pole low-pass butterworth filter from DSP.jl. In red is ~~the old implementation~~ an initial state of 0s, and in blue is ~~the new default~~ a matched initial state:

![screen shot 2014-07-03 at 5 44 08 pm](https://cloud.githubusercontent.com/assets/154641/3476279/bc00735e-02fc-11e4-9e16-30598693b210.png)

A few questions: 
- [x] ~~This changes the output of filt.  I think that this is the "right" default.  But it will change results.  Is that ok?  I am not a digital filter guru; I just use them a lot.  Does this make sense to do in other applications?  **Edit:** Hm. Thinking about this more, I don't think this should happen in the base filt function.  I can roll back the second commit, and it can become part of a more domain-specific package, like DSP.jl.~~
- [x] ~~Licensing:  I was looking at SciPy's implementation as I worked on this.  But the only part that actually comes from SciPy is the [3-line algorithm for solving the initial state](https://github.com/mbauman/julia/blob/19ba34c001152977d4fc011c75e1e08bb260aacf/base/dsp.jl#L87-L91).  SciPy is 3-clause BSD, but surely that algorithm is published somewhere and/or not copyrightable?~~ (only applies to 19ba34c001152977d4fc011c75e1e08bb260aacf.)
- [x] See my one inline question on `copy`.

- [x] If approved, I'll add NEWS and update the doc.
Can we move `out` to be the first argument? I understand that then it can't be optional, but I think it's worth it for consistency, since most mutating functions in Base take the output as their first argument.