Implemented the first (somewhat) working undo/redo-able transation:
setting the tool.

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>