Fix the nvim-clipboard help instructions

Fixes #1407
job: Fix memory leak in job_start().

If a new job cannot be started because no slots are free, we return early
without freeing the argv argument.
Mark some function arguments as [consumed] in the docs.

The argument argv of job_start() and channel_from_job() will be
freed. Mark them as such in the comments of this functions.
Try to fix problem found in the Travis Ci build.

An uv_pipe_t handle for a WStream could be left open for a
particular code path.

Patch by tarruda.
Move many includes down to the EXITFREE block.

They're unnecessary for the rest of the file, and they're only there at
all to help implement `free_all_mem` for use with Clang's Address
Sanitizer.  So let's move them to avoid any confusion about why they are
there.
Improve legacy2luatest script.
build: allow installing into the root directory (/)

It turns out that CMake always canonicalizes `CMAKE_INSTALL_PREFIX` to
an absolute path--if it's a relative path, it canonicalizes it relative
to the build directory.  As a result, the only thing the DESTDIR and
relative directory check prevents is an installation into the root
directory since CMake strips the trailing slash, turning "/" into an
empty string.  Let's just remove the check all together, since it cannot
accomplish what we intended.
Merge pull request #1429 from oni-link/fix.job_start.leak

Fix memory leak in job_start().
Merge pull request #1443 from jszakmeister/allow-root-dir-installs

build: allow installing into the root directory (/)
Merge pull request #1442 from fwalch/improve-legacy2luatest

Improve legacy2luatest script.
Merge pull request #1416 from jondkinney/master

Fix the nvim-clipboard help instructions
test: Fix nondeterminism in tests with notifications

Tests which spin the event loop and stop it in a notification handler have a
chance of re-entering the event loop due to the `vim_eval` call in the
`request()` helper(assuming the request call is what triggered the
notification). Since this will cause an error to be thrown by the lua client,
don't send the extra `vim_eval` request when the loop has been stopped.
eval: Return an empty list from systemlist() when there's no output

This is the behavior on vim's `systemlist()`.
shell: Use job_write_cb for closing stdin

Commit @45525853d352 removed usage of the `job_write_cb` for closing stdin due
to a memory error, but that doesn't work anymore because `job_close_in` closes
stdin immediately, possibly trimming input data before it is fully written.

Since most memory issues with jobs have been fixed, re-add the `job_write_cb`
call to ensure stdin is only closed when it should. Also add tests for scenarios
where using the callback makes a difference.
Merge pull request #1448 from tarruda/shell-systemlist-test-fixes

Fixes to shell.c, systemlist and functional tests
build: fix CMAKE_MODULE_PATH usage

Fixes #1447.  `CMAKE_MODULE_PATH` is meant to be a list of directories,
and as such, is not the proper way to launch our scripts.  Let's use
`${PROJECT_SOURCE_DIR}/cmake` instead.  Also, let's not outright set
`CMAKE_MODULE_PATH`, but instead append our location to the list.
Fix warnings: ex_cmds.c: do_ascii(): Garbage value (2): MI.

Problems   : Assigned value is garbage or undefined @ 127.
             Assigned value is garbage or undefined @ 152.
Diagnostic : Multithreading issues.
Rationale  : Error could only occurr if global `enc_utf8` changed while
             the function is executing.
Resolution : Use local copy of global var.
Fix warnings: ex_cmds.c: do_ecmd(): Np dereference: FP.

Problem    : Dereference of null pointer @ 2768.
Diagnostic : False positive.
Rationale  : `win_valid(oldwin)` implies `oldwin` not null.
Resolution : Assert `oldwin` not null.
Fix warnings: ex_cmds2.c: do_source(): Np dereference: FP.

Problem    : Dereference of null pointer @ 2462.
Diagnostic : False positive.
Rationale  : Error occurred if neither loop neither following if were
             entered (this implied `script_items.ga_len < 0`, which
             should not be possible).
Resolution : Assert not negative length (loop or if entered).
Fix warnings: ex_cmds2.c: do_source(): Unitialized arg (2): MI.

Problem    : Uninitialized argument value @ 2485.
             Uninitialized argument value @ 2507.
Diagnostic : Multithreading issues.
Rationale  : Error can only occur if globals `do_profiling`, `time_fd`
             are modified while function is executing.
Resolution : Use local copy of globals.