Moves Minuit step sizes to source file

This is an implementation detail: it is not necessary for the steps
array to be declared as a private static member variable. Therefore:

 - Move the array from the header to an unnamed namespace in the source
   file
 - Change the array to a vector<double>
 - Add comments and use a more understandable variable name
 - Use C++11 features in initialising and using the vector
Move max number of fittable photons from header

Instead of a static const member, declare the constant in an unnamed
namespace in the source file.
Initialises Minuit step sizes from a function

This allows initialisation of a constant vector, but have the size
depend on the number of fittable photons.
Use array initialisation for shower shape
Removes unused tower width member variable
Removes (x,y) tower widths member variable

Implement as a variable in an unnamed namespace in the source file.
Changes Minuit mnexcm arglist from array to vector
Changes cluster fit arguments from array to vector
Changes 2-photon fit arguments to vector
Adds function to set Minuit parameter
Set nPhotons parameters with function
Removes unused Minuit steps vector
Replaces more arrays with vectors in Minuit fit
Adds C++11 initialisation list to some arrays
Adds use of auto for some for loops with iterators
Replace NULL with nullptr

gcc 4.4, for which we are currently developing, does not actually
support nullptr. However, we can use it just as a substitute for NULL as
ROOT defines nullptr (just as 0) in Rtypes.h.

Once we move to gcc 4.6+ nullptr proper will be supported by the
compiler, and the current implementation should still be supported.
Adds auto type in for loops with iterators
Uses accumulate to sum tower energies

This is neater and allows the sum to be declared const.

Uses a more meaningful variable name for the energy sum.
Cleans up N-photon minimisation function
Cleans up energy deposition function