Allow evolution and observation matrix to vary with time

It can be useful to have the system matrices vary with time.
Is this within the scope of this package?

This is an initial implementation to open discussion.
With a modified version of the oldkalman test

```julia
using TimeModels

function G1(n);  cos(2*pi*10*(1/1024)*n); end
function G2(n);  exp((1/8192)*n); end
function G3(n);  3.0; end

F = diagm([1.0])
V = diagm([2.0])
G = reshape([G1, G2, G3], 3, 1)
W = diagm([8.0, 2.5, 4.0])
x0 = randn(1)
P0 = diagm([1e7])
mod1 = StateSpaceModel(F, V, G, W, x0, P0);

x, y = simulate(mod1, 100)
filt = kalman_filter(y, mod1)
smooth = kalman_smooth(y, mod1)
```
I overlooked the fact that this was already a PR @codles, I initially thought it was just an issue. Would it be easy to add a test before merging?