Clean up

Removed more now-unused functions from the main function to the junk
functions file, it is unlikely they'll be needed again.
Almost got rid of training loop

Have finally moved everything within the training loop into classes, the
training loop can now be moved within the class as well.
No more training loop

Now that the training loop is no longer there, the code is nearly fully
object-oriented. There is now a few things I can do:

Move the user interface parts to within the dataIO class, I guess it
covers that area. That should mean that the main function will be
completely free of other functions.

Reorganise the trainer file, I should probably change the name of the
class to something better, move the parameter of 'errorsAndGradients'
so that there are declared when an instance of the trainer object is
called. The best way to probably do this is with pointers, but I can try
it with both ways to see if it works differently.

I need to change the dataIO class so that it stops reading from a file
if the amount of data has gone beyond the MAX_DATA_LENGTHS, and make
sure that doubles can be read from the *.csv files.

Then I need to do some pretty big changes to the trainer class so that
it writes out information on the training, validation etc. And also make
it so that it has other stopping parameter rather than just putting in
the number of iterations to do.

The aim of all this is to change the code that it can train over the
same data set many times (each time is also know as an epoch, and for
that matter I need to be able to set the size of the epoch) before the
training parameters decide that it has trained enough for a simulation.