Split GUI into separate Toolbox, Menubar and ButtonPanel, move some state tracking into ToolContext