Explained structure of project.
Committing old changes that were made to MATLAB code prior to paper submission.
Mentioned GSL dependency.
Large clean up, reorganisation and refactoring of a bunch of files,
with the main goal of making TreeBuilder faster and easier to
understand.  This is ground work for modifying TreeBuilder to use
exponential distance and logarithmic Hamming, which I've not
started on yet.
Added dinky demo tree nonsense.
Better documented the contents of this directory.
Better and more consistent file naming.
Save all calibration results to appropriate directory.
Tidied up and reogranised distance.py, and made appropriate changes to function calls in calibrate.py.  Distance.py now always uses optimal values saved by calibrate.py
Renamed demos directory to demo-trees.
Many intertwined changes to calibrate.py and distance.py.  The upshot is
that we make much heavier use of least squares regression in calibrating
all the distance methods.  This includes storing intercepts and slopes
for everything, as this is a much nicer approach to the problem of
dealing with very low distance pairs than the hacky offset addition we
were using previously.

There's quite some redundancy in calibrate.py now, and the whole thing
could do with a tidy up, but it works.
No longer add random offset, as the least squares fitting done during calibration now solves the same original problem.
Slight restructuring of make_trees and make_tree, especially shifting responsibility for retrying after failures to make_trees.
Generate ALL trees.
Do not normalise matrices inside of generate-trees, as this is now handled earlier in distance.
Fix retry handling.
Record more data while fitting models.
Distance matrices are now numpy ndarrays, not lists of lists.
Get rid of old, no-longer-needed hack with Haversine distance.