Add missing require
Force usage of pipes for subprocess communication

The Emacs Lisp manual documents pipes as more efficient for background
processes.  Since our checkers are exactly that, and don't do user
interaction, let's follow this advice.
Do not attempt to select deleted buffers
Teardown Flycheck when killing the buffer

Kills a running syntax check, and cleans up all temporary buffer copies
before actually killing the buffer.