Fix E855 on :lclose

Since 7.3.449 trying to :lclose inside BufWinLeave result in E855:

    $ vi -u /dev/null --noplugin -N
    :autocmd BufWinLeave * if empty(&bt) | lclose | endif
    :lexpr(':1:msg') | lopen | wincmd p | lclose
    E855: Autocommands caused command to abort

    $ vi -u /dev/null --noplugin -N
    :autocmd BufWinLeave * if empty(&bt) | lclose | endif
    :lexpr(':1:msg') | lopen | wincmd p | q
    E855: Autocommands caused command to abort

Another issue with this autocmd is &bt in BufWinLeave may be different from
the buffer being unloaded (this is documented behaviour for BufWinLeave).
Replacing &bt with getbufvar(0+expand('<abuf>'), '&bt') solve this, but
doesn't fix issue with E855 completely (first of above examples with
:lclose is fixed, but second with :q is not fixed).

So, to work around E855 I've changed way to close location-list:
instead of closing it on BufWinLeave, it's closed on BufEnter into
location-list window if it's only buffer in current window.
Merge branch 'master' into E855-on-lclose
Updated the dart syntax checker.

It now uses the correct path for the dart_analyzer, it uses the
machine readable format to provide more information.

The highlighter now highlights the exact span that the analyzer complains
about. Further, warnings are different from errors now.
Fixed error on SyntasticToggleMode.
Merge pull request #553 from amouravski/master

Updated the dart syntax checker.
Merge pull request #577 from likr/togglefix

Error on SyntasticToggleMode.
Merge pull request #262 from powerman/E855-on-lclose

Fix E855 on :lclose