Change whitespace in TowerUtil

Reduce a lot of blank lines and other whitespace in an attempt to
"compress" the layout and make it easier to follow. No change in
functionality.
Move test for non-peak tower to separate function

This algorithm is used in a couple of places, and it is more easily
documentable as a function.
Move clustering constants out of class declaration

Most of the member variables of TowerUtil were essentially single-use
constants. I placed them in an unnamed namespace in the source file so
they are still declared together for reference, but don't clutter the
class declaration.
Add utility function to TowerUtil

I want to see if I can simplify TowerUtil by reworking the cluster-
finding using built-in STL containers and algorithms rather than so
much hand-written code. Add a simple function to populate STL
containers from ROOT collections to aid in this, as I don't yet want to
change the interface to TowerUtil, and it works with TObjArray
arguments.
Redesign TowerUtil implementation

This tries to provide a briefer and more understandable implementation,
using STL containers and algorithms. It tries to break up the main
TowerUtil algorithm into smaller functions to make it easier to follow.

For example, the tower-cluster association occurs in a single function,
called within a loop, rather than being part of one long loop with other
loops inside it.
Remove break statement from tower association

This piece of logic is no longer needed, as we take care of the same
thing by calling the function in a do-while loop.
Partition below-theshold hits before clustering

Then only use the above-threshold hits in clustering. This removes the
need to repeatedly check whether a hit is above threshold before doing
anything with it.
Simplify cluster loop

Remove some unnecessary steps now that below-threshold towers are
filtered out.
Edit neighbor assignment

Instead of copying the entire tower array in order to be able to erase
items while iterating, use reverse iterators. The implementation looks
slightly complicated, so I put a link to where I found it.
Move test of nClusters to while loop

Simplifies things, as we don't need to check for nClusts at the end and
break out if reached.
Sort towers in descending energy for clustering

This simplifies some of the implementation compared to sorting in
ascending energy, then using them from back to front.
Clarify tower-cluster association algorithm

Clean up this function, and add extra comments to make it clearer what
is happening at each step. I think this function can still be clarified
more before being sent for review, but that will require more
significant changes in implementation.
Remove unused method argument

Association of residual towers with clusters doesn't rely on valley
towers so the argument isn't needed. It was a holdover from copy-paste
of the main association routine.
Add index number to HitCluster

With the reworking of TowerUtil it became necessary for a tower to be
able to access the cluster number via the cluster object itself.
Rework tower-cluster assocation code

The logic of the algorithm is unchanged, and gives the same result.
However the implementation has changed a lot, using a class to store the
tower-cluster association information and make the necessary
calculations to do the association.

I think this is easier to follow, as each step of the association is now
in a separate, commented class method; and the code in the main function
is now shorted and easier to follow in the context of the rest of the
algorithm.
Reduce length of tower association functions

Added some extra functionality to the TowerClusterAssocation class and
reduced the length of the functions so they are easier to follow.
Simplify association of zero towers

Now use the same procedure as for other associations.
Cleanup of TowerUtil code

(Re)move unnecessary headers, rename some variables, eliminate unused
lines.
Fix error in below-threshold tower association

Reintroduced cut on separation distance that was erroneously removed
Put tower energy sorting in its own function