Event handling classes so that registers update GUI fields with execution.
Added RegisterListener to class, which is notified every time the contents of the register is updated (for GUI purposes).
Re-jigged the launch() method to reflect slight changes to the stages (namely the implementation of a run() method, which will make pipelining implementation easier in the future.
Rearranged to accommodate a run() method; getters and necessary fields added to facilitate this change.
Added SwingWorker to allow background program execution without freezing GUI. This is crucial as Thread.sleep() is required to slow down program execution so that it is observable, but this cannot be done without SwingWorker as the main thread would hang and the program would freeze.