Tidying up

The vast majority of the changes are due to tidying of comments,
position of brackets, etc that should make the code easier to read but
will have no effect on how it actually runs.

Changes worth noting are:
- In many places variables cast as `double` have been recast as
`Double`. This is primarily due to the way parameters are read in from
protocol file. Care has been taken to initialise `Double` variables as,
for example, 0.0 rather than simply 0. Note that a `double` variable
will be given a value of 0 by default, whereas a `Double` variable will
be given a `Null` value by default. More complicated is initialising
Double[], Double[][], and Double[][][] arrays, and so I have created
the functions ExtraMath.newDoubleArray(int nI),
ExtraMath.newDoubleArray(int nI, int nJ) and
ExtraMath.newDoubleArray(int nI, int nJ, int nK).
- Switched the position of the if statement in
SimTimer.updateTimeStep() to make it easy to comment.
- Error reporting has been improved (see LogFile.writeError()).
- attachmentMethod will always be “onetime” in a chemostat (see
Simulator.createSimulator()).
- Changed ActiveAgent.grow() so that it no longer calculates the growth
rates - this is done by updateGrowthRates() - but merely implements
them.
- sendHeader() and writeOutput() functions of all classes implementing
HasSpecies no longer return a String but a StringBuffer instead. This
seems to make more sense than repeatedly switching between the two.
- Forced LocatedParam to read in tumbleInt as a time rather than a
length. Made a note that cellRunSpeed should be read in as a speed, not
a length.
- Changed Species.setAgentAngleOfMovement() so that it uses the
standard random number generator, and is therefore reproducible.
- Tidied up swimming attachment in Species. Converted all angles to
radians as standard. Worth noting that
LocatedAgent.computeDifferenceVector() assumes cyclic boundaries, and
Domain.testCrossedBoundary() only returns the first boundary crossed (a
complete list would be far more appropriate). When I get time I’ll move
all of the difference stuff to Domain and deal with boundaries
properly.
- Removed duplicate function in XMLParser: getAttributeStr() did
exactly the same thing as getAttribute(). All calls to
getAttributeStr() now call getAttribute().