add undo/redo

i left this out of the original release because i was too lazy to do an
undo/redo stack, but then i realized that Qt has its own. hooray!