Implement IList and IList<T> for LinearAlgebra.Generic.Vector<T>

This is useful for compatibility purposes, in my case motivated by wanting compatibility with NPlot.  I'm not sure if this will be controversial or not... from a pure design perspective, making the Vector classes implement IList makes me shudder since they are of fixed size.  On the other hand, it seems to be relatively common to have fixed size or even read-only container objects implement IList if they implement O(1) indexed access, and also somewhat common for code to accept IList inputs when they really only need a Count, and enumeration, and possibly also fast indexed access.  So in my view it's ugly, but a necessary evil given the interfaces available to choose from in the standard library.

This pull request is not necessarily production ready yet, it doesn't have documentation of the new interface methods (although they're nearly all explicitly implemented, so not sure how important that is), nor does it have unit tests.  Happy to do whatever's necessary to bring the code up to the repo's standards, but wanted to make sure the basic idea is going to be okay before spending time on a lot of boilerplate.