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
Add a check for the error messages variable so that users can specify their own error format.
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.
PHPCS can check CSS files.
Add support for JSHint's secondary error format

JSHint has a secondary error format that includes a number related to the error message.

E.g. The normal error format is something like: 

.\Foo.js: line 2, col 5, Missing semicolon. (W033)

But the secondary error format includes a number in parentheses:

.\Foo.js: line 3, col 4, Blocks are nested too deeply. (2) (W073)"

I've changed the errorformat to read the message until it hits a space, instead of a period, so that these errors are included.
Cleanup: defer to php/phpcs.vim.
Checkers cleanup.

Elliminates duplicate code.
Brings gcc cpp, objc, and ada checkers in synch with c.
Minor bug fixes.
Bug fix.
Another bug fix.
Merge pull request #570 from brianpeiris/patch-1

Add support for JSHint's secondary error format
Merge pull request #569 from lcd047/css_phpcs

PHPCS can check CSS files.
extract the sign code out into its own class
add syntastic_always_populate_loc_list option

We dont want to set the loc list by default since syntastic isnt the
only plugin using loclists - and we dont want to clobber other peoples
loclists.

This option allows the user to override this behaviour if it suits their
workflow.
fix some guards
move the sign options into the sign class file
move the modemap code out into its own class
Added new sh checker: checkbashisms.
Merge pull request #536 from trprice/master

Make.vim - Check g:syntastic_c_errorformat so that users can provide their own error format
Merge pull request #571 from lcd047/cleanup_dupes

Checkers cleanup