reinstate pretty reporting

This now automatically gets subsets to generate their names and
descriptions in the neatest way they can, dependin on the information
they have available. This information will differ in k-means versus
clustering/greedy approaches, just because of the way the algorithm is
set up. The idea (lets see if it works) is that this code does the
nicest possible job.

I've also added a nexus style output. This should help a few people out.