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.
systemlist: add `keepempty` option to preserve final newline
systemlist: test empty lines in beginning and middle of output
When SANITIZE=ON headers need -DEXITFREE
Merge pull request #1567 from bfredl/systemlist

systemlist: add `keepempty` option to preserve final newline
Fix newline substitution: Adapt to upstream patch.

Fix previous changes to be compatible with agreed changes to upstream
vim (https://code.google.com/p/vim/issues/detail?id=287).
Merge pull request #1596 from elmart/fix-newline-subst

Fix newline substitution: Adapt to upstream patch.
build: fix a typo in a comment of FindLuaJit.cmake
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.
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'
term/ui: Add "abstract_ui" builtin termcap