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
deps: Add libtickit/libtermkey as dependency

The new terminal UI will be implemented on top of those libraries
term: Move "set_shellsize" to screen.c as "screen_resize"
term: Remove most calls to settmode

Nvim now relies much less on setting terminal mode to cooked mode, remove most
calls to settmode, except for those that happen on startup or when suspending.
Eventually even those will be handled by the UI layer.
term: Move more mouse functions to mouse.c
mouse: Remove CHECK_DOUBLE_CLICK conditionals

This is now always defined.
Merge PR #1591 'Prepare to rewrite the terminal UI'
deps: Use unibilium URL with Makefile fixed for OS X

Close #1594
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
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.