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.
fix mch_delay() unittest
Fail RunUnittests if we get a non-zero exit code from busted.
Move some #defines from farsi.h to farsi.c
Do not include farsi.c in main.c

 - Change CMakeLists.txt to compile farsi.c normally
 - Add const to global variables in farsi.h and define them in farsi.c (no need
   to include farsi.h with DO_INIT defined in globals.h)
 - Include farsi.h where necessary
 - Include all necessary headers in farsi.c
 - Move farsi function declarations from main.h to farsi.h