Add a 3-argument method for scale! for scalars

Just like as scale! allows a pre-allocated argument for scaling a matrix by a
vector, this allows specifying a third array as the output for scaling by
scalars.
Refactor filt! to use an output argument

- No longer modifies the filter state in place, instead uses a copy