[vim] Initial implementation of .

`.` repeats the last change made. It doesn't currently support changes made in insert mode.

I would like to record and repeat changes made in insert mode, basically when the user is typing into the document. I can't figure out a good way to do so. I only want to record changes up until the user moves the cursor. The `change` event that CodeMirror provides doesn't really specify how granular the change is and it seems like attempting to record all change events and merging them together would be quite a mess.