Allow PCA of complex data rather than only keeping the real part

N.B. Trying to run the test suite gave all sorts of spurious errors;
I think there is something wrong with my setup.
Therefore this code is untested.