Turn ARABIC_CHAR into a function
Move arabic.h #defines from arabic.h to arabic.c

 - Move arabic_shape() decl from main.h to arabic.h
 - Move arabic_combine() and arabic_maycombine() from mbyte.c to
   arabic.c as these functions use the #defines I moved.
 - Remove the unnecessary include of arabic.h in globals.h
 - Remove include of arabic.c (sic) in main.c (change CMakeLists.txt to compile
   arabic.c normally)
Reformat new function in arabic.c to comply with style guide
inline arabic_char()
Implement `mch_delay` on top of libuv

Needed to temporarily move two static variables from os_unix.c to 'globals.h'
as those are shared by other functions still in os_unix.
Reimplement input functions on top of libuv

Functions that interact with `read_cmd_fd` were implemented on top libuv, using
`uv_run()` in conjunction with `UV_RUN_ONCE`.