[vim] Refactor macro handling

Use CreateInsertModeChanges to make a copy of the latest
insert mode changes in pushInsertModeChanges so that the
latest insert mode changes can safely be modified without
bashing previously recorded macros.

Fix the :register command and add unit tests. Add a fakeOpenNotification for matching the notification text.
[vim] Fix :registers unit tests
[merge addon] Add leftChunks and rightChunks methods

Issue #2334
[sql mode] Added support for Hive
[complete demo] Enable global variable tracking for JavaScript mode