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)
```