FIX: Check type of lfiltic

Current `lfiltic` has a bug where the input `y` gets turned into an array, and the datatype of the result is used to set the datatype of `zi`. This is problematic when `y` is given as a set of integers, because then as `zi` gets accumulated from the product of `y` and `a`, the resulting value gets truncated to an integer. This is one possible way to solve that problem.

I wasn't sure where else `lfiltic` was tested (if at all, explicitly?), `git grep "lfiltic"` within `scipy/signal/` didn't turn up any instances within `tests/`, so hopefully the test I added is in an okay place.

Closes #3699.
This is now added to the tests for ``lfilter``, which looks OK to me (testing with multiple dtypes makes sense here) but it may help to make the test name ``test_lfiltic_bad_zi``.