Replace Boost ptr_list with list of unique_ptr

Clustering was previously done using a Boost ptr_list (from the
ptr_container library). As we are now migrating to C++11, replace this
with std::list<std::unique_ptr>>. Note that we no longer need the space
between right angle brackets in the template declaration thanks to
C++11!

This is the initial step in phasing out Boost in favour of C++11 as
discussed in #34.
Remove BOOST_FOREACH

This is the other task in removing Boost, as discussed in #34.

Unfortunately, as we are currently developing for gcc 4.4.7, range-based
for loops are not yet supported. Therefore we are limited to traditional
for loops using iterators. At least the use of auto types helps reduce
some of the associated verbosity in some places.

When we move to gcc 4.6 or later (where range-based loops are supported)
it might be nice to clean up the modified code by using them.

Closes #34.
Add typedef for tower list used in clustering

This simplifies writing some of the more STL-heavy parts of other code
(e.g. iterators in loops) and will make it easier to change the tower
collection type if that became necessary in future.