Tidying up

Note that this pull request is equivalent to that attempted in PR #50. Issued resolved by using the command line Git tools instead of the GUI!

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().