Added undo/redo support with safer side effect prediction for inject of
drag tool.

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