Win32

More code / build file cleanups to make it build on win32.  
Actually, Eigen pretty much requires you to pass fixed-size types by reference. See
http://eigen.tuxfamily.org/dox/group__TopicPassingByValue.html
> Passing objects by value is almost always a very bad idea in C++, as this means useless copies, and one should pass them by reference instead.
> With Eigen, this is even more important: passing fixed-size vectorizable Eigen objects by value is not only inefficient, it can be illegal or make your program crash!

So if you remember any other places where we pass by value, we should fix those.