Multivariate Kalman Filter

Here's a simple branch with the code added into statsmodels.tsa.statespace. A couple of thoughts

- At least in the dev process, I thought it might be nicer to keep it in its own module, rather than putting it with the kalmanf. I don't know what makes the most sense in the long run.
- I have unit tests that rely on the statespace model, but I'm rewriting them so the KF pull request can be done on its own without other dependencies, especially since the statespace model is likely to change.

**Edit**: Original line comments.

**L72**
> Question: do we want to keep the single-precision version (and the complex single precision, below)? I don't really see a use case, and it appears from preliminary tests that the results tend to overflow. Maybe I'll post a unit test to demonstrate and we can go from there.

**L332**
> Question: there are a bunch of ways to initialize the KF, depending on the theory underlying the data. This one is only valid for stationary processes. Probably best to move out to the Python wrapper?

**L444**
Question: I think we'll want to add the ability to specify whether or not to check for convergence and alter the tolerance.

**L414**
> This inversion is using an LU decomposition, but I think in this case I can rely on f to be positive definite since it's the covariance matrix of the forecast error, in which case I could use the much faster Cholesky decomposition approach. This is something I'm looking into, but if you happen to know one way or the other, that would be great too.
> 
> Related to this is the idea that you should "never take inverses", and I guess I need to look into replacing this with a linear solver routine if possible, in the updating stage below.
They do not. I guess the statsmodels convention is to put the exposed methods in `api.py`? I suppose we don't need to expose any of the tools. The flags, though, may be useful to have exposed, although I need to clean out some of the unimplemented flags.