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)
```
Account for time invariant matrices, this might add some processing overhead.
But it seemed cleaner (lazier) than writing a simulate/filter function for each combination of time invariant and non invariant matrices