adapt to the style guildelines

semi-automated harvest of low hanging fruit:
change the unorthodox use of whitespace.
Homebrew formula builds dependencies through make

This way, if the dependencies change, and the install process needs to
change to accommodate this, the Homebrew formula won't need revising.
Migrate input/signal/sleep code to libuv

Reimplement user input, signals handling and sleep on top of libuv.

The event loop runs in a background thread, started very early by 'io_start'.
Mutexes/condition variables were used to emulate the current blocking interface
needed by the rest of the code.

Here's a list of changes performed:

- A new function `io_read`, replaces the `read` system call interface when
  reading from stdin(or stderr when stdin is a pipe).
- Reimplement `mch_inchar`, `mch_delay` and `mch_char_avail` using libuv
  objects.
- Move `mch_exit`, `mch_breakcheck` `mch_inchar`, `mch_delay` and `mch_char_avail`
  to modules under the 'os' directory.
- Signals are now intercepted by libuv and delivered synchronously to the main
  thread as 'special keys'(Similarly to how the `CursorHold` event is implemented).
  The actual code for handling signals was moved to signal.c.
- Remove unused functions in os_unix.c
- Travis will run an extra parallel build with the thread sanitizer enabled.
- Add option to generate static executable(for debugging core dumps sent by
  users)