A knockout.js extender to track and undo changes.