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!
fix a dimensional screwup with undo/redo
undo/redo icons
update changelog, tweak mapchange again
namespace cleanup
update exhal again