Update to libuv 1.0.1.

This should fix #1505 and #1276 and libuv removes support for dtrace all
together.
Refactor declaration generation

- Call compiler from CMake instead of lua script to generate a
  preprocessor file - allows for better/early error detection if
  the compiler fails
- Preprocessor files are saved along with the headers as .i files
- Accept preprocessor lines with trailing chars after # as is
  the case in Clang/Windows
- The fourth argument to gendeclarations.lua is now the path to
  the proprocessor output file
Don't use env vars for configuration time options

- As a general rule of thumb one shouldn't use environment variables
  for setting configuration options for CMake. The reason for this is
  we don't know when CMake will be executed and re-evaluate that variable.
- e.g. If we run cmake a first time with a var set, and then run make on
  a second session (with no var) and cmake is called because a
  dependency changed, the option would be disabled
- This commit removes the use of environment vars from
  src/nvim/CMakeLists.txt entirely
- Removed SKIP_UNITTEST since it could only be used to remove a target
  at configuration time (and the target was optional anyway)
- Turned SANITIZE into an option, clang-asan.sh now passes cmake
  -DSANITIZE=ON
- Removed SKIP_EXEC since it was disabling a target at configuration time
  (not being used)
Only use SANITIZE for nvim target

- Clang's Address Sanitizer options may cause problems when running
  the unit tests, restrict the use of these options to the nvim target.
When SANITIZE=ON headers need -DEXITFREE
build: no need to quote the paths in CMake, it will do it automatically
build: only manipulate out if getting the timestamp was successful

This fixes an issue seen in #1548, though the real problem is something
different.
Merge pull request #1542 from jszakmeister/upgrade-libuv

Update to libuv 1.0.1.
Merge pull request #877 from equalsraf/tb-gendeclarations-windows

Refactor declaration generation error detection
Merge pull request #1587 from equalsraf/tb-env-configs

Don't use env vars for configuration time options
Revert "Merge pull request #1587 from equalsraf/tb-env-configs"

This reverts commit 53bccaaf99cc9564fe5096d37e9aacfd19e3d2d4, reversing
changes made to 4049002f6b1f6db33a497c1f8473ab15233395d5.
Fix memory leak detected in PR 1510.

LSAN/ASAN detected, on an error code path, that not all elements of a
struct ChannelCallFrame were freed.
channel.c: Fix for heap-use-after-free

ASAN detected this heap-use-after-free.
A job started by channel_from_job() could terminate and result in a call
to free_channel(), while channel_send_call() was still active/pending
and accessing Channel elements.

Original patch by @tarruda.
time: Inline microdelay into os_microdelay
shell: Remove kShellOptCooked from ShellOpts
deps: Update unibilium and lua client
Merge PR #1603 'Small refactoring and dependencies update'
Merge pull request #1534 from oni-link/fix.leak.detected.in.1510

Fix memory leak detected in #1510.
Remove remaining crypto references

Closes https://github.com/neovim/docs/pull/26

Also added stubs for 'cryptmethod' and 'key', and placeholders for
explanation regarding removal of crypto functionality.
Merge pull request #1563 from Pyrohh/cleanup-docs-encryption

doc: remove remaining crypto references