Parameterised Pre-Instantiation and Overstay default values

- Previously, the Historical AI Node's pre-instatiation bid coefficient
and overstay bid coefficient were being referenced only by their
constants. They are now parameterised in the constructor to allow
different instantiations
- Made constructors safer for future use by referring to each other
(using 'this') rather than all of them calling super
- Minor formatting here and there
Created experiment run script. Improved run script and gitignore

- Created exp.sh, which runs many experiments and helpfully places all
the resulting .csv files, summary files and standard out to a specified
directory. Experiments are run with a different seed every time, which
is currently a number from 1 up to the number of experiments (e.g.
1-30)
- Run script now checks for existence of the build.jar and library jar,
as well as now allowing the specification of arguments, which are
then passed straight to the JVM
- GitIgnore file updated to ignore files ending in ~ and files beginning
and ending with # (Linux and Emacs temp files)
Updates/added experiment bash scripts -- subject to change soon
Added params mechanism, for parameters independent of scenarios
Merged changes in from upstream.

Changes are mainly fixes to random number generation and removing code in
PassiveAINodeMulti which is already in Active.
Scenarios with waypoints support, and scenario added

- Added support for XML scenarios with waypoints. They are now specified
by the <object_with_waypoints> tag, with any number of <waypoint> tags
as children. An example is in scenario4_active.xml in this commit. The
code to enable this is a new object for TrObjectWithWaypoints within
SimSettings as well as some XML parsing code
- Added a scenario with waypoint objects for each of the three AI nodes
- Took out the empty constructor for TrObjectSettings for safety
- A large number of formatting fixes and a couple of small enhancements
to WorldView
Updated experiment scripts (for histparams)

A few enhancements and minor changes to the scripts that run experiments
across the parameters for history-based bidding (to find the optimum)
Scenario saving supports waypoints. Scenario4 now has only one object

- Changed scenario4 to have only one object
- Added objects with waypoints to the scenario saving code
- Fixed bug with saving scenarios where heading and viewing angle were
being converted incorrectly
- Fixed saving scenarios to conform to new load-by-class-name mechanism
for AI nodes (from one of my earlier commits)
- Removed CameraController.update_confidence_original(). It was
identical to update_confidence save for a line or two
- Formatting here and there
Restructured HistoricalAINode into active/passive. Added scenarios

- Major restructuring of the Historical node. The idea is to have an
active and a passive historical node, but since these would have to
extend different classes, there would have to be duplicated code. The
solution implemented is a little bit ugly but there is minimal code
duplication. Essentially, there is a HistoricalAINodeActive and Passive,
each of which is a shell for the HistoricalNodeHelper which has the real
logic and state inside. The Historical nodes (shell classes) are
duplicates so any code changed in one must be changed in the other,
unfortunately. Please forgive me.
- Added two new scenarios to show off the advantages of history-based
bidding
- Updated previous scenarios due to new names for historical nodes
Minor changes/formatting

- Changed variable names in ActiveAINodeMulti to better reflect their
meaning
- Formatting
- Removed old commented-out code
Many improvements and changes to the experiment scripts

- Scripts now run several scenarios at once
- Scripts now run across communication methods 0, 1 and 2 (broadcast,
smooth, step)
- Slightly more modular
- A few more checks for valid inputs, variables, etc.
- Results script checks if summary exists now, skipping if so
Improvements, optimisations and changes to exp scripts

- Script exp-results-histparams massively improved and optimised by a
factor of 25x. It now computes standard deviation as well as mean
values, and compiles a long calculation string to pass to bashcalc
rather than invoking it repeatedly. Some added error checking
- Exp-results also improved, and adjusted to summarise the standard
deviation values
- Compile script now checks if source files have changed since last
compile (similar to Makefiles)
- Added exp-non-hist for running experiments of all non-hist nodes in
one go (since this is much more straightforward than running hist nodes
with params files)
- Indentation and formatting fixed in a couple of the other scripts
Improvements, optimisations and changes to exp scripts

- Script exp-results-histparams massively improved and optimised by a
factor of 25x. It now computes standard deviation as well as mean
values, and compiles a long calculation string to pass to bashcalc
rather than invoking it repeatedly. Some added error checking
- Exp-results also improved, and adjusted to summarise the standard
deviation values
- Compile script now checks if source files have changed since last
compile (similar to Makefiles)
- Added exp-non-hist for running experiments of all non-hist nodes in
one go (since this is much more straightforward than running hist nodes
with params files)
- Indentation and formatting fixed in a couple of the other scripts
Fixed scenarios 4 and 5.

Previously, these scenarios were not quite behaving as designed (to show off the abilities of history-based bidding).

NB, scenario 4 suffers as a result of a bug with waypoints which needs to be looked into later (the object supposedly heads east, then north, then west, but in practice heads east, stops short of its intended point, travels north-east, then heads west).
Merge branch 'master' of https://github.com/hxcaine/OGAMOTUMBNDSC
Results script now adds scenario name to CSV entries (minor change)
Small fix to compile script and updated default Params file
Fixed overstay equation, summary script now writes all to summaries dir

- Overstay equation was broken, it will now check if the avgTS-currentTS
is larger than 0 and use that as the coefficient, otherwise use the
overstay coefficient.
- Exp-results-histparams now puts all the generated CSV files into a dir
called 'summaries' for easy access
Added ability to classify objects to hist

The HistoricalNodeHelper now computes the direction of an object and
places it into the appropriate category for object classification. This
information isn't used for anything yet.
Changed structure of HistoricalAINode, added ability for > 2 categories

- HistoricalAINode was split into a helper class and two classes, an
active and a passive. This was messy and I found a way to have them be
nested classes underneath a single common HistoricalAINode. This
simplifies matters and makes things much easier to maintain.
- All hist-based scenarios had to change to accommodate the new naming
of the hist class they refer to. Note that HistoricalAINodeActive is now
HistoricalAINode$Active in the scenarios, since this needs to be picked
up by the Java reflection mechanism
- Added support for more than just two categories in the object
classification code. Any number of categories is now supported