iconv: re-enable

This seems to have been disabled in the transition from vim to neovim,
re-enable it.
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.
Merge pull request #1340 from elmart/remove-long_u

Remove project-specific integer types: long_u. (2)
deps: Upgrade to latest version of lua-client
test: Improve test environment setup and error handling/reporting

During test setup, we used to call a vimscript function(BeforeEachTest) that
attempted to restore Nvim to it's initial state as much as possible in order to
provide a clean environment for running new tests. This approach has proven to
be unreliable, as some tests leave state that can affect other tests, eventually
causing failures that are difficult to debug.

This commit changes the 'clear' function so it will restart Nvim every time it
is called, which is a slower, but more reliable solution that will simplify
spotting bugs in the future.

Some other improvements/fixes were also performed:

- Whenever an error is detected in a handler passed to "run()", the event loop
  will be stopped and the error will be propagated to the main thread.
- Errors and the "cleanup()" function will always send a quit command to the
  current Nvim instance. This should prevent memory starvation when running
  tests under valgrind(where each Nvim instance can consume a lot of memory).
- Fixed a wrong assertion in server_requests_spec.lua. Previously the failure
  was undetected in a notification handler.
- Fixed some tests to expect fully clean registers. The deleted cleanup function
  used to put an empty string in every register, but that resulted in a extra
  line being added.
Merge PR #1421 'Improve test error handling and reporting'
eval: Allow setting vim variables of UNKNOWN type