Added a lock to the data structure holding the nimber of infected vertices at each time step during a simulation to prevent concurrent modification errors caused by the GUI attempting to update between steps (when the data structure is being written to). This is a proper fix for #27 and the IndexOutOfBoundsException in #38.
The GUI and the simulation commands that alter the graph now lock on the graph to ensure the graph isn't modified while it's being rendered.