New as_matrix and from_matrix methods

Handy for doing linear algebra! Also, changed the PCA
to use these methods.

I tried to make them naturally support generators as well.
I'm torn after our earlier discussion on this. I can see your argument that adding `length` kwargs all over the shop is ugly, (count two now, this and PCAModel) and I think making it easy to build a 'sized' generator from a generator is maybe what we should encourage...let's discuss on the phone