shell: Fix shell command output

Shell command output was broken in @8a5a8db, which refactored nvim to no longer
switch to cooked mode(linefeeds are processed differently).

Fix the problem by refactoring write_output to accept to extra arguments that
control the flushing behavior and where data will be written to: buffer or
directly to the screen.
deps: Fix 32-bit build of lib{unibilium,termkey,tickit}
Merge PR #1613 'Fix shell command output'
Revert "deps: Fix 32-bit build of lib{unibilium,termkey,tickit}"

This reverts commit f76df2475356add68212d737acd7da5bba3b64d6.
deps: Fix unibilium/libtickit URLs
Merge PR #1620 'Fix 32bit unibilium build'
Fix warnings: edit.c: ins_compl_next_buf(): Np dereference: MI.

Problem    : Dereference of null pointer @ 3247.
Diagnostic : Multithreading issue.
Rationale  : Problem only occurs if global `ctrl_x_mode` is modified
             while calling function is executing.
Solution   : Use local copy instead of global.
Fix warnings: message.c: msg_attr_keep(): Np dereference: FP.

Problem    : Dereference of null pointer @ 179.
Diagnostic : False positive.
Rationale  : Error occurs if `s` paramater is null, which should not
             happen.
Resolution : Declare parameter as non null.