Data-saving at high cycle count takes too long, causing the DUT to fall
asleep. Data-saving has been extracted into its own thread.
Additionally, Run/pause switch has been re-threaded using synchronized
statements, rather than lock statements, making the run switch work
properly (finally).
Data is now saved in the new Cycle object, rather than passing around
multiple maps, hopefully improving memory footprint.