cmake: upgrade libuv 0.11.23 -> 0.11.26 #911

Fixes some bugs and increase the performance of uv_hrtime() on OSX, which
reduces its prominence in performance traces. This allows us to better see
what's really causing slowness.

ref:
- https://github.com/neovim/neovim/issues/868
- https://github.com/joyent/libuv/pull/1325
- https://github.com/joyent/libuv/releases
Add vim_feedkeys API function

- New API function to push data to the typeahead buffer - this should
  equivalent to the vimscript feedkeys() function
- In Vim there was a --remote-send command to insert input into a
  Vim server instance. Besides accepting key sequences it also
  translated special keys such as <CR> or <Leader>, backslash notation
  is ignored. This commit backports the original Vim handler for
  --remote-send as a bool option for vim_feedkeys()
- vim-patch:0
dispatch function generator: Fix bug in validation/initialization

- Initialize variables before validating argument count to remove possibility of
  freeing uninitialized pointers
- Set the error when the argument count validation fails
Merge pull request #916 'Add `feedkeys` API function'
Temporarily switch python-client branch for testing
wstream: document default value for 'maxmem'
wstream: Pass WBuffer refcount as a constructor parameter

This is required to handle broadcasting when the first write fails.

Ref: https://github.com/tarruda/neovim/commit/11916b6b595421ce2ece10f7aa40757cc4937c0c#commitcomment-6792287
api: Refactor write_msg to use separate out/err buffers
channel: Refactor channel_from_job to return the channel id
channel: Implement channel_exists function
job: No longer free the job data. It's now done by the exit callback
channel: Bugfixes and refactor

- All functions that require a channel id will fail when the channel was
  disabled
- Rewrite `call_stack_unwind` as `call_set_error`. It will now disable the
  channel and set error on all frames. The stack will be unwinded automatically
  while the involved functions exit.
- Remove `disable_channel` function. If channels are disabled, they will be
  closed as soon as possible
provider: New module used to expose extension points for core services

Introducing the concept of providers: co-processes that talk with the editor
through the remote API, and provide implementation for one or more core
functions.

There's a `provider_register` function that has an API wrapper, this function
can be used by channels that want to self-register as a Neovim provider.

This implements the provider module without exposing any extension points, which
will be done in future commits.
provider: Add support functions for calling external interpreters

This uses the provider module infrastructure to implement common code for
vimscript commands/functions that need to communicate with external
interpreters, eg: pydo, rubydo, pyfile, rubyfile, etc.
provider: Add support for python commands/functions

This uses the provider/scripting infrastructure to reintroduce python support
through the msgpack-rpc API.
provider: Add support for clipboard registers.

This reimplements the '+'/'*' clipboard registers(both are aliases to the same
underlying register, no separate register for the X11 selection) on top of the
provider infrastructure.

It also adds new boolean option: 'unnamedclip', which has the same effect of
setting 'clipboard' to 'unnamed/unnamedplus' in vim

The 'clipboard' option was not reused because all values(except 'unnamedplus')
seem to be useless for Neovim, and the code to parse the option was relatively
big. The option remains for vim compatibility but it's silently ignored.

Closes #583
api: make buffer_{get,set}_slice automatically assume `include_end`

This is for compatibility with python-vim interface: When passing an end index
with a value higher than the last index, assume the `include_end` flag
getchar: fix infinite loop due to pending events

The `inchar` function could enter an infinite loop if there are events pending
to be processed when an interrupt is received.