Make `EventType` enum private to input.c

This enum doesn't need to be public since `event_poll` is only interested in
user input(but other events may be handled by libuv callbacks).
Re-integrate FEAT_FILTERPIPE code

This feature was accidentally removed when doing the initial import from vim. It
makes vim use pipes instead of temporary files for filtering buffers through
shell commands.

I found that this was missing when looking for references of
SHELL_READ/SHELL_WRITE outside mch_call_shell`.

When `mch_call_shell` is reimplemented on top of libuv process management
facilities, pipes will always be used for communication with child processes so
it makes sense to enable the feature permanently.
Fix prepare watcher teardown in the event loop
Rename mch_* functions to os_* in os module.
Address clint warnings and other style issues.

* Add const.
* Fix conditions (move && from end to start of line).
* Use int32_t instead of long.
* Use //-style comments.