Notifiers refactor.

Creates a notifier class.
Changes the existing signer class to fit the new notifier.
Moves balloons and highlighting to their own classes.
Caches and speeds up EchoCurrentError().
Adds all relevant messages to balloons rather than using the first one.
Fixes yet another (minor) bug related to g:syntastic_quiet_warnings.
more refactors to the Notifier classes

Move the autoloc list toggling out into its own notifier class.

Move the function that echos the error on the current line out into its
own notifier.

A few other changes were required in the process:
* move s:WideMsg() out into syntastic#util autoload lib so it is
  available from the cursor notifier.
* move s:ShowLocList() into the LocList class so it is available for
  the autoloclist notifier
* move s:HideLocList() into Loclist as a class method mainly to keep the
  two show/hide methods together
* move the s:old_line var into the Cursor notifier where it is needed
move a couple of options out into relevant notifiers
Cleanup.

Makes cursor a standard notifier.
Adds a method enabled() to the notifiers.
Adds an optional method reset() to the notifiers.
More cleaning up.

Renames notification classes.
Fixes a stupid bug related to the cursor notifier.
move s:Loclist() into SyntasticLoclist as a class method
Fix for #597.

If the first error in the location list refers to a file that isn't
loaded, entering the quickfix window would close it.

If `hidden` is set, `:quit`-ing the main file would not close the
quickfix window.
Minor cleanup.

Warning signs should not overwrite error ones.
Use buffers instead of file names when placing signs.
Other minor changes.
Rename signer.vim -> signs.vim.
Minor bug fix.
Make the enabled() method optional.
Addresses #530.

If variable g:syntastic_[filetype]_checker is found in user's config,
g:syntastic_[filetype]_checkers is set and a warning is issued.
use $SHELL for scripts without shebang

thanks to @zhaocai
Closes #613
contributing doc: add section about issues/bug reports
help file: add a new tag easy reference from the changelog
bump to version 3.0.0
Merge branch 'notifiers'
add a simple debug message system

We may want to add debug messages at many points. We can add them as we
find we need them - i.e. when debugging stuff with users.
Merge remote-tracking branch 'origin/notifiers'

Conflicts:
	autoload/syntastic/util.vim
add basic deprecation warning system