Modify TowerUtil to use Boost ptr_list

Replace use of a bare array of HitClusters with a boost::ptr_list. This
allows automatic resizing to the required number of clusters, and simple
erasing of clusters failing selection criteria, rather than maintaining
indices to track the number of usable clusters in an array. We use a
pointer array as I want to remove support for copying of most of the
classes, as it leads to more difficult maintenance e.g. the tower list
of the clusters has to be deleted or cloned in some way when copying. We
will then use lists of pointers for everything, and memory management
will be handled by classes like ptr_list.

Note that this change introduces a very small change in the QA output
from the previous version. Some investigation showed that this is not
due to using a list instead of array, but because the clusters can end
up in a different order after filtering. It turns out that the Yiqun
GlobalFit result can have a dependence on the order of the towers it
fits. I don't understand why this should be, and it would be good to
confirm with Steve that this is expected behaviour.