Moved transform generation from EditorPanel to Camera where it belongs
Camera: Added long-overdue comments on public methods
Added CallbackSet class
Updated Camera to use CallbackSet
Vec2: Added addPolar()
SourceOscillator: Typo fix
ToolTraceDrawer: Added preview of 45-degree adapted trace drawing
ToolManager: Changed way tools are managed
Toolbox: Now uses the ToolManager to initiate creation
EditorPanel: Component creation moved to ToolManager; added getter
For undo/redo, added a layer of indirection between tools and the world
Camera: Added mapWorldToScreen()
Util: Fixed not closing streams in deepCopy()
Added HistoryManager class for undo/redo
Added HistoryListener interface
ToolTraceDrawer: Removed debug println
Camera: Made more thread-safe (interpolateTo is asynchronous)
EditorPanel: Updated to use HistoryManager and HistoryListener
EditorWorld: getWorldExtent() now handles the world being empty
SpatialGrid: Made serialisable