Add generic checker definitions
Add command based checker definitions

This absolutely BREAKS Flycheck currently.  We'll restore functionality
later, as we define a proper API to work with generic checkers.
Start syntax checks with generic checkers
Capture current buffer in the closure environment
Properly track syntax check and report status
Start and interrupt command checkers
Fix function call
Fix process deletion

Don't excessively delete processes.  Just do it at places where it's
needed.
Fix some compiler issues and warnings
Add macro to define executable variables
Support specific documentation for generic checkers
Fix missing bindings
Reorder definitions for logical consistency
Even larger re-ordering

Move command-based syntax checks to the very end, before built-in
checkers, because everything else, including errors, overlays, etc., is
absolutely generic.
Don't allow compilation with non-command checkers
Reorder definitions again to avoid undefined variables
Add missing indent/docstring declaration
Fix some function invocations
Restore argument substitution functions

These got lost accidentally
Restore flycheck-define-checker