solarized: use VertSplit bg for inactive statusline

Adjust foreground color accordingly, also for non-active modified
filename (to stand out).
Revert changes to s:NM, add s:NMi for inactive windows
Correctly detect mercurial repos using lawrencium
Enable branch extension when vcscommand is available
reset current buffer when one gets deleted. resolves #399
Merge pull request #404 from blueyed/solarized-inactive-like-vertsplit

solarized: use VertSplit bg for inactive statusline
Merge pull request #410 from coven/master

Branch extension bugs. Fix #444
improve whitespace detection. resolves #452.
Fix "Cannot use empty key for Dictionary" error

This commit resolves compatibility issue with fugitive plugin. When
using "Gdiff" command on some file, fugitive attempts to open the
current and the index version of the file. For example, if the file is

    /home/taketwo/path/to/the/project/README.md

then fugitive will use the following path to open the index version:

    fugitive:///home/taketwo/path/to/the/project/.git//0/README.md

Opening this file leads to a cascade of errors like this:

    Error detected while processing function
    airline#extensions#tabline#get..<SNR>162_get_buffers..<SNR>162_get_visible_buffers..airline#extensions#tabline#get_buffer_name..airline#extensions#tabline#unique_tail_improved#format:
    line   20:
    E713: Cannot use empty key for Dictionary

The problem is that when a filename like this is being tokenized, there
appear empty "" tokens, and an error occurs when using them as keys in
`path_tokens[token_index]` dictionary. This fix simply skips empty
tokens.
Merge pull request #455 from taketwo/fix-empty-key-error

Fix "Cannot use empty key for Dictionary" error