Fixed race condition in degree distribution chart. See comments in #38
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.
An inital static layout is now generated for 'lattice' type graphs. The layout is a simple square grid pattern with uniform distance between vertices, that can be set in the grid generator settings. This closes #40.
Merge remote-tracking branch 'origin/vladi' into vladiMerge
1) Moved all layout-related fields of the graph to a new 'LayoutParameters' class and slightly changed the mechanic behind calculating the predominant VertexIcon. Also fixed a bug where the predominant icon was not updated when adding or removing vertices. 2) The graph position and zoom level is now reset every time a new graph is generated. 3) Vertex positions for lattice-type graphs are now calculated in such a way, so the entire graph is fitted in the initially visible visualization space. There is also an option in the lattice generation settings to scale the generated layout (the default being 100%). This closes #40. 4) Set a limit to the minimum and maximum zoom levels that can be set to the graph view. Also, pressing the middle mouse button now switches the zoom mode (direction) between Windows and MacOS style.
Fixed an issue where the current zoom level stored in the CustomScalingControl was not reset back to 1 when replacing the graph.
Merge branch 'Plovdiv-38' into develop

Conflicts:
	src/main/java/view/Display.java
Made one text box bigger as it was sometimes too small fit the text it contains