PCA Wrapper

I hacked this together to address #209

I don't know how robust it is because I'm not terribly familiar with the sklearn api, but it seems to work