Undo / Redo Cleanup

This code hadn't been changed in a few years.  Updated it to be more in
line with the current style and added some trace information
Restructured the undo / redo tests
Field name cleanup
Make undo / redo more resilient

This change makes undo / redo more reselient to errors and other
components manipulating the undo / redo stack.  In particular this
guards against orphaned linked transactions from ever manipulating state
in the manager.

May be a fix for the remaining issues around #672
Removed dead code
Make undo / redo resilient to all exceptions
Remove dependency on ITextView from UndoRedoOperations

Undo is associated with an ITextBuffer at its core.  Yet VsVim had
associated it with the ITextView through its dependency on
IEditorOperations.  This separated the concerns a bit nicer and added
the one view specific function that needed to be added
Moved undo down to IVimTextBuffer

Undo rightfully belongs in the buffer layer not the view.   This is how
the core editor associates undo and we were simply creating problems by
associating it with the ITextView instead.  This change moves undo down
to the IVimTextBuffer which is the logical pair for ITextBuffer.  Now
all IVimBuffer instances over the same ITextBuffer share the same undo
information.
Simplify the implementation

Simplify the undo / redo implementation.  No need for complex
continuations here.  Make the code more straight forward and easier to
process
Merge pull request #1262 from jaredpar/fixes-undo

Fixes undo