cleanup os_unixx.h
inline the rest of os_unixx.h into os_unix.c
Broken build on 32 bit: Fix -Wshorten-64-to-32.

Problem:

[ 48%] Building C object src/CMakeFiles/nvim.dir/os/mem.c.o
/Users/eliseo/projects/os/neovim/src/os/mem.c:9:32: error: implicit
conversion loses integer
      precision: 'uint64_t' (aka 'unsigned long long') to 'long_u' (aka
      'unsigned long')
            [-Werror,-Wshorten-64-to-32]
              return uv_get_total_memory() >> 10;
                ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~^~~~~

Solution:

Avoid conversion. Make function return proper uint64_t.
Make users of the function accomodate the value if too big for them.
Broken build on 32 bit: Fix -Wtautological-constant-out-of-range-compare.

Problem:

[ 51%] Building C object src/CMakeFiles/nvim.dir/os/rstream.c.o
/Users/eliseo/projects/os/neovim/src/os/rstream.c:237:24: error: comparison of constant
      9223372036854775807 with expression of type 'size_t' (aka 'unsigned long') is always true
      [-Werror,-Wtautological-constant-out-of-range-compare]
  assert(rstream->fpos <= INT64_MAX);
         ~~~~~~~~~~~~~ ^  ~~~~~~~~~
/usr/include/assert.h:93:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^

Solution:

Assertion temporarily disabled.
TODO: Review types so that assertion can be used.
Use xmalloc() and xmemdupz() in file_pat_to_reg_pat()

Unfortunately there's still a case where NULL can be returned from
file_pat_to_reg_pat().

xmemdupz() and xmallocz() aren't static anymore. There are many use cases for
these function.
(verbose_)?try_malloc() to use on buf_write()

There will be more use cases for try_malloc(): see #556.

 - Reimplemented xmalloc() using try_malloc().
 - verbose_try_malloc() is just like try_malloc() but shows an out-of-memory
	 error message before returning NULL.
 - Let the compiler generate size>>1 assembly for signed types. We're not using
	 old compilers here.
 - Add proper function attributes to the new functions in memory.h
No OOM error condition in prep_exarg()
No OOM error condition in ga_concat_strings(), concat_fnames(), concat_str()

 - xmallocz() is not static anymore. There are many use cases for this function
	 in the codebase and we should start using it.
 - Simpler types in ga_concat_strings()
No OOM error condition in prt_build_cid_fontname()

 - Replace alloc() with xmalloc[z]() and remove unnecessary casts in hardcopy.c
 - Use xstrndup in hardcopy.c
No OOM error condition in save_patterns()
No OOM error condition in cs_make_vim_style_matches()

Even though cs_reset() never returns anything different of `CS_SUCCESS` I can't
change its return type to `void`. cs_reset() is used in the `cs_cmds` table.
No OOM errors in mb_str2wide, slang_alloc, open_spellbuf
No OOM error conditions in some functions of window.c

 - alloc_tabpage()
 - win_alloc_lines()
 - win_alloc_aucmd_win()
 - new_frame()
 - win_alloc()

TODO: don't handle OOM after calls to dict_alloc()
No OOM error in call_shell() and read_string()
No OOM error conditions in quickfix.c and regex_nfa.c

quickfix.c

 - ll_new_list
 - ll_get_or_alloc_list

regex_nfa.c

 - realloc_post_list -> EMIT -> nfa_emit_equi_class
 - nfa_regcomp_start

Use xrealloc() in realloc_post_list() (regexp_nfa.c)

  Test plan: force a call to realloc_post_list() for every use of the EMIT macro;
  open nvim and test regexp search.
Add FUNC_ATTR_NONNULL_RET to some functions
No OOM error condition in get_register() and yank_copy_line()
No OOM error condition in some ml_* functions

 - ml_add_stack()
 - ml_encrypt_data()
 - ml_updatechunk()
Remove OOM test in set_context_in_menu_cmd()