Added basic PCA implementation and unit tests.

Here's the basic PCA implementation. Lots more can be added, and several things can be generalized, but this should be a good starting point and can already do some useful things!

I tried to model things after R's functionality, including variable naming. Seems okay, but no problem if anyone would prefer to diverge from that.