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.

This implements the provider module without exposing any extension point, this
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: Implement `provider_register` and API wrapper

This function can be used by channels that want to self-register as a Neovim
service provider
Fix channel job_exit callback
Refactor provider_call
Refactor python provider definition