[vim] Generalized two-letter ESC sequences for insert mode

You can now edit vim.js and set enableEscKeymap to true and tweak
any related settings that you see fit and have a two-character
sequence to ESC from insert mode.
[vim] Add vim options for insert mode esc keys and cleanup
[vim] Fix macro recording for insert mode keys esc
[vim] Default insert mode esc keys back to false
[vim] Lint run
[vim] Move slightly misplaced comment.
Fix problem where a change to the selection causes unwanted history event merging

Issue #2717
[vim] blockwise insert and append
[ruby mode] Don't treat property names as keywords

Closes #2724
Add goLineLeftSmart command

Issue #1544
[haml mode] Adjust test to correspond to changed ruby mode output
Preserve selection after indenting
Amend c07ddbbf43f00887f09ea8d01faedb00acd1a018

Issue #2715
Fix bad backslashes in wordChars helpers

Issue #2721
[sublime keymap] Fix bindings for swapLineUp/Down

Closes #2723
Work around optional-argument bug with updateSelection

Closes #2725
Fix bug that caused width computation to happen for every operation
Fix problem caused by ordering of scroll width measurement and width adjustment

Closes #2730
Fix initialization problem introduced by 2f14f52e24b35
Another fix to the width measuring kludge