Re-enabled a unit test that was made pointless a while back.

 Some time ago I changed how concurrency works. This meant log files were interleaved and information could not be extracted reliably. Now the concurrency model has changed again, so it is possible to extract this information reliably and the test makes sense again.
Added more detailed stats recording during classification runs.

Includes unit tests and various other minor tweaks needed to do testing
Added a rudimentary function for plotting stats collected during classification