A lot of work on GUI

I have fixed some stuff and added some more new stuff. All in all the GUI code is quickly closing the feature gap with command line.
Oh my, I've not seen `""//` syntax before. I'm not sure what that does.

I presume `currentTransaction.OpenFile(fullPath).TemporaryPath` is the path to our file in the pre-committed state?