basic implemention undo/redo

record undo when caret on textnode with whitespace or enter key event
restore selection and contents

**it works!**