first go at poor-lpca
Working first stab at poor-man's LPCA
Now collapsing near-identical columns

(But I don't think it's doing the right thing in interpreting them-- the
weights need to get split up by length?)
Trying out weighting by length.

@bcclaywell it seems to me that this will do the weighting according to
edge length for the eigs as described in the email to Steve. It is the
equivalent of multiplying the evects of GL on the right by L. Could you
give it a shot with your synthetic data? Thx.
Fixing the pretty printers for mats and vecs
Refactoring covariance matrix calculation.

Passes tests, which exercise scaled and unscaled versions.
Merge branch 'dev' of github.com:matsen/pplacer into 281-poor-lpca
better comments for BD diagonalization.
Making the length PCA code less silly.

Lost a number of allocations and conversions between GSL matrices and
float array arrays by moving some intermediates to arrays of GSL
vectors.

Passes tests.
doc tweak
Added cmd_obj delegator for Pca.gen_pca to prepare for merging in the --length code
Merge remote-tracking branch 'refs/remotes/origin/281-poor-lpca' into 302-length-pca

Conflicts:
	pplacer_src/guppy_pca.ml
Added calculation of the edge-averaged projection matrix AF.