Fix problems with merging vim.Dictionary

Also add tests

Fixes #516
Fix infinite add_watches loop with symbolic links

Added a check to ensure that add_watches doesn't run on the same folder over and over again. This occurs at least when circular symbolic links are present.

Fix #543
Various performance improvements for the vcs backend

1) Fix a bug where watching a directory would also report the directory
as changed if any files inside it were changed. This would causes
excessive polling by the branch segment

2) Fix a bug where the watch for the repo dir in the branch segment
was being continually recreated, again causing excessive polling. This
was particularly noticeable with the patch to fix fugitive file status
updates.

3) Improve the performance of branch coloring for git repos by ignoring
change events for the index.lock file. This file is created/deleted
every time git access the index and would cause the entire working tree
status to be re-queried every time.
Remove obsolete comment
Disable vim.bindeval support for vim_getwar for old vim versions
Remove uneeded code
Fix tests
In place of failure create new window ID in case of duplicate ID

Fixes #545
Fixes #537
Support ~/ directories in powerline-lint
Support low values of line2byte

Fixes #567
Merge remote-tracking branch 'zyx-i/fix-545' into develop
Merge remote-tracking branch 'zyx-i/powerline-list-expanduser' into develop
Merge remote-tracking branch 'zyx-i/fix-567' into develop
Merge remote-tracking branch 'kovidgoyal/fix-482' into develop

Conflicts:
	powerline/lib/vcs/git.py
Change [DETACHED HEAD] message to a short hash of the detached head.
Merge branch 'feature/git-improve-detached-head' into develop
Merge remote-tracking branch 'michaelbeaumont/fix/issue-543' into develop
Fix documented path to fontpatcher.py
Merge branch 'fix/docs-fontpatcher-path' into develop
Update Arch Linux packages to use updated VCS syntax

Closes #479