Added event listener reference and registerListener() method.
Added memory listener.
run() now synchronized to allow for step execution, where the currrent thread must have the lock on the object in question.
Step button added, step execution working.
Added listener for GUI update.
Updated for MBR, MAR and Memory event handling.
Step execution working through all stages (although intervals need refining.