A Javascript undo manager that supports grouping and coalescing consecutive actions.