Resolve some jshint warnings

Just some minor indenting and semicolon fixes
Introduce batched undo operations

In the course of working with undo operations it is typical that a
single user-invoked operation should be considered as an atomic
transaction for the purpose of undoing, regardless of how many
undoable operations are triggered; batches collect these multiple
operations into a single operation.