Merge branch 'release-0.6' into develop
Modified event data reading to return a struct

Reading event data from files now returns data in a form easier to manipulate.
Tests updated to deal with the changes.
Experimenter loads data from experiment paramfile into a struct.
Experimenter loops through experiment parameters

Simple case of separate experiments for each parameter as well as more complex case of multi-variable experiments runs.
Split the experimenter into two functions, one for setup and one for execution.
Updated some checks for setting parameter values.
Experimenter executes experiments, dynamic parameters, estimator specification

Experiment execution happens, but not yet in a useful way.
Experiments can be added to the parameter file and executed by running the experimenter, so long as certain parameters are provided.
Estimator to use for each experiment can be specified.
Suppressed most print statements in estimators with the VERBOSE variable.
Reduced file accesses made by IWLS, fixed zero lambda values causing crashes.

IWLS can receive event data directly so that it does not have to access the file every time it is called. This impacts the piecewise and baseline estimators, which call IWLS multiple times, previously necessitating multiple file reads.
Fixed an issue where lambda values of zero in the IWLS estimate would result in division by zero and cause infinite weights to appear. Weights are now set to zero if lambda is zero.
Multiple function estimates with a single call, file naming changes, IWLS fixes

Fixed various issues where the IWLS estimator would produce -nan values, resulting in crashes in other functions
Estimating more than one stream can now be performed on multiple functions by using the -c switch.
Changed stream output filenames to reference the original filename so that experimentation can be done more easily. Should also be easier to find which files go together.
Functions for checking presence of and creating directories.
Experimenter takes input and output directories as parameters and outputs separate experiments to separate directories in the output directory.
More experiment output granularity, parameter output

Experiment data is now output to separate directories for each experiment, along with the parameter settings used for that experiment.
Gaussian estimator takes an output switch parameter - contribution of gaussians is no longer always output (saves a lot of time).
Experiment parameter file has data on the number of streams and number of functions to work on.
Fixed memory access issue when combining functions.
Report sections updated, toc numbering fixed, draft abstract
Analysis of experimental results output to file.

Some relevant data to output to files into the experiment directory.
Math functions for calculating errors between function estimates.
Gaussian time delay estimates are automatically normalised. More error functions.

When estimating the time delay with gaussian kernels, the resulting function (output to ~combined.dat) is automatically normalised. Estimating only a single stream with the gaussians still requires normalisation of the returned values.
MSE and RMS error functions added to math util. Also made the corresponding value function shift the data it gets from the gauss vector so that it is all above zero.
Bibliography added to report, still need to decide style. Keywords and typesetting info.
Report introduction completed.
Function for removing data in certain intervals from event streams, default experiment file generation.
Added a non-uniform stuttering function which removes data in specified intervals.
Stuttering functions improved, "goodness" of single stream estimates output.

The goodness of single stream estimates is about how good the estimate is when using a stuttered input stream of events.
Modified the estimate function to return void pointers so that data from gaussian estimates can also be returned.
Fixed memory leaks caused by some of the changes, and a few others that were picked up.
Report description in introduction, gravitational lensing introduction.
Moved files out of code directory and into top level
Average goodness output to file on top level, memory issues fixed.

Average goodness of each experiment is output to a file in the top level directory of the given experiment set.
Fixed memory issues in the file_util class caused by file descriptors not being correctly released.
Stuttering function does not break, more output from experiments.

The stuttering function now uses data from the parameter file to get consistent sizes for the array it creates.
Experiments now output the experiment number of the optimal parameter setting for each individual function.