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
[closetag addon] Reindent line when a tag is closed by /

Issue #2735
[clojure mode] Fix null dereference bug
Sanitize scrolling code, make it deal with being asked to show rect larger than view

Issue #2736
Scroll correct positions into view after undo/redo

Issue #2736
[xml-fold addon] Make doMatchTags also return info about self-closing tags

This way, the matchtags addon highlights them the same as normal tags.

Closes #2737
Also update line heights from updateDisplaySimple

Issue #2726