Use checkpoints instead of open-ended transactions

This can't be merged until atom/atom@bf83fb7b10091d7c76c489330b46cd0f96682478 is released in v0.151.

Closes #50.

This fixes issues with undo/redo after autocomplete and also makes autocomplete compatible with [vim-mode](https://github.com/atom/vim-mode).