[vim keymap] Add macro support / insert mode changes become repeatable

This chunk of code is big and messy, might took you quite some time to review.

So far, it supports the following set of features:
  - `q` keylogger
  - `@` execute macro from registers
  - `@@` execute latest macro
  -  repeatable insert mode changes with register `.`