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
Fix flake8 error/warning checking

Error/warning checking did not correctly parse output from flake8. This
resulted in Syntastic incorrectly displaying some warnings as errors.
Merge remote-tracking branch 'scrooloose/master'
Fixing the ycm files

The new Syntastic API was not correctly merged into these files. This commit
should fix this.
Support checker name as argument to :SyntasticCheck
Add completion for checker name in :SyntasticCheck command
remove some old (now unused) code from the main plugin
add a class to encapsulate loclists

Add SyntasticLoclist class to wrap up loclists, and move loclist query
methods from syntatic.vim to the new class.

Make SyntasticChecker#getLocList() return a SyntasticLoclist.
Merge remote-tracking branch 'dbarnett/cmd_arg'
make a few refactors

Add CurrentFiletypes function as this logic was getting used in a couple
of places and needed a home/name - mostly because of the bizarre
substitute call that needs explanation.

Move the code to get a syntax checker by name into SyntasticRegistry
dont allow checkers with duplicate names for the same filetype
dont call setloclist() until the user calls :Errors
move the MakeprgBuilder class in with the rest of the classes
fix a typo bug in the cpp/ycm checker
less: fix a bug from the big refactor
Minor omission in commit 8f4695c.
Perl syntax checker using perlcritic.
add 'make' as a C syntax checker
json/jsonval: fix a typo