test: Set VIMRUNTIME before running tests

This is required for testing scripts under the 'runtime' directory
iconv: re-enable

This seems to have been disabled in the transition from vim to neovim,
re-enable it.
test: Simplify/fix options_spec.lua

The options_spec.lua suite has one purpose: Check if the :options commands will
throw any exception(:options is implemented by $VIMRUNTIME/optwin.vim). For this
it is best to use the `vim_command` API function since it will automatically
catch exceptions and forward them via msgpack-rpc.

Also, the option window seems to affect other tests, so call `restart` in the
teardown hook.
test: Add more valgrind "possibly lost" suppressions

These valgrind entries are false positives because vim uses interior pointers.
channel: Delay notifications to avoid client race conditions

It is currently possible for a client to send a response that doesn't match the
current server->client request(at the top of the stack). This commit fixes that
by delaying notifications to until the first `channel_send_call` invocation
returns.

Also remove the "call stack" size check, vim will already break if the call
stack goes too deep.
Merge PR #1398 'Tests and msgpack rpc improvements'
Merge pull request #1370 from aktau/enable-iconv

re-enable iconv
version: Refer to nvim help on startup screen.
Merge pull request #1412 from fwalch/startup-help

version: Refer to nvim help on startup screen.
Remove long_u: eval: Replace with size_t.

Note: No effort is done on refactoring anything in eval module, as it
      will be eventually dropped.
Review: Remove long_u: memfile: Cleanup: Comments.

- Restyle comments (/// when appropiate, // otherwise).
- Improve comments (add new comments, augment/clarify existing ones).
Review: Remove long_u: memfile: Cleanup: Others.

memfile_defs.h:
- Inline struct definitions in typedefs.
- Move memfile_T definition to this file (weirdly, was in buffer_defs.h).

memfile.c:
- Use C99 style variable declarations. This is, move variable declarations as
  near to first-usage point as possible).
- Modernize old-style function declarations.
- Fix indent at some places (some multiline expressions and the like).
Review: Remove long_u: memfile: Cleanup: Fix naming inconsistencies.

- Drop '_S' suffix for struct names.
- Make struct names match corresponding type's name (just removing '_S' suffix).
- Rename NR_TRANS type/struct (just ugly).
Review: Remove long_u: memfile: Enable -Wconversion.

- Add memfile.c to converted files list.
- Fix conversion issues:
    * bhdr_T          : bh_page_count : int  -> unsigned.
    * bhdr_T          : bh_flags      : char -> unsigned.
    * mf_new()        : page_count    : int  -> unsigned.
    * mf_get()        : page_count    : int  -> unsigned.
    * mf_release()    : page_count    : int  -> unsigned.
    * mf_alloc_bhdr() : page_count    : int  -> unsigned.
    * mf_trans_add()  : page_count    : int  -> unsigned.
    * mf_put()        : flags         : int  -> unsigned.
Review: Remove long_u: memfile: Refactor: long_u -> size_t.

- memfile_defs.h:
    * hashtab_T: mht_mask: long_u -> size_t.
        Masks are used to truncate keys to a value adequate for an index
        in the array of entries. Value of the mask plus one is the
        current size of the array. Both of those reasons imply the
        soundness of size_t for this type.
    * hashtab_T: mht_count: long_u -> size_t.

- memfile.c:
    * total_mem_used: long_u -> size_t.
    * mf_hash_free_all: idx: long_u -> size_t.
    * mf_hash_add_item: idx: long_u -> size_t.
    * mf_hash_find: idx: long_u -> size_t.
    * mf_hash_grow: i: long_u -> size_t.
    * mf_hash_grow: j: long_u -> size_t.
Review: Remove long_u: memfile: Refactor: mf_hashtab_T.mht_fixed: Remove.

Unused since 457bb2615154946d273d75e07f5d5a936f50ede0.
Review: Remove long_u: memfile: Refactor: bhdr_T.bh_data: char_u* -> void*.

This, in addition to being more correct, allows removing a lot of
explicit casts.
Review: Remove long_u: memfile: Refactor: int -> bool.

Replace int with bool where appropriate.
Review: Remove long_u: memfile: Refactor: blocknr_T: long -> int64_t.

Replace long with int64_t.
Apart from being convenient, not using long is required by clint.
Review: Remove long_u: memfile: Add to clint.