travis.sh: move symbolizer definition into common area
Merge #956 'travis.sh: move symbolizer definition into common area'
Move po generation from Make to CMake.

Fixes #902: localization build: `install`, `uninstall`, `prefixcheck
targets.  All the language-related bits will now build under CMake.
Changes include:

  * Moving all non-generated sources into the NEOVIM_SOURCES variable
    to aid in generating the .pot file.
  * Moving a couple generated sources from NEOVIM_SOURCES and into
    NEOVIM_GENERATED_SOURCES.
  * Added NEOVIM_HEADERS to the executable and the library for folks who
    are using something other than Ninja or makefiles (that way the
    headers will show up in the IDE files).
  * Now uses gettext's `--update` switch to update the .po files, rather
    than doing a fragile `mv` dance that could leave you with a broken
    working tree if you press CTRL-C at the right time.
  * Creates `update-po-${LANG}` targets for updating individual
    languages, just like the original Makefile.
  * Also adds the `update-po` target for updating all the languages.
  * Ported the `check-${LANG}` style targets.  They're
    `check-po-${LANG}` under CMake.
  * Handles all the one-off instances that were in the original
    Makefile.  Fixed up ko.UTF-8.po to include the "Original
    translation" line like other .po files to make the generation of the
    "Generate from ..." comments consistent.  Updated ko.po with the new
    text.
Customize the log file for the check targets based on the input file.

The idea being that it's better to segregate feedback, just in case
someone is working on several translations.  Now the check log will
appear in `./build/src/nvim/po/check-${LANG}.log`.
Merge #928 'Move po gen to cmake'
Revert "Merge #928 'Move po gen to cmake'"

This reverts commit 53fba180c32724809d8ab35238eea68440b7ac97, reversing
changes made to a3b3db8256c259d10957d45666cf4179e328f3f4.
Customize the log file for the check targets based on the input file.

The idea being that it's better to segregate feedback, just in case
someone is working on several translations.  Now the check log will
appear in `./build/src/nvim/po/check-${LANG}.log`.
Move po generation from Make to CMake.

Fixes #902: localization build: `install`, `uninstall`, `prefixcheck
targets.  All the language-related bits will now build under CMake.
Changes include:

  * Moving all non-generated sources into the NEOVIM_SOURCES variable
    to aid in generating the .pot file.
  * Moving a couple generated sources from NEOVIM_SOURCES and into
    NEOVIM_GENERATED_SOURCES.
  * Added NEOVIM_HEADERS to the executable and the library for folks who
    are using something other than Ninja or makefiles (that way the
    headers will show up in the IDE files).
  * Now uses gettext's `--update` switch to update the .po files, rather
    than doing a fragile `mv` dance that could leave you with a broken
    working tree if you press CTRL-C at the right time.
  * Creates `update-po-${LANG}` targets for updating individual
    languages, just like the original Makefile.
  * Also adds the `update-po` target for updating all the languages.
  * Ported the `check-${LANG}` style targets.  They're
    `check-po-${LANG}` under CMake.
  * Handles all the one-off instances that were in the original
    Makefile.  Fixed up ko.UTF-8.po to include the "Original
    translation" line like other .po files to make the generation of the
    "Generate from ..." comments consistent.  Updated ko.po with the new
    text.
Fix some newline issues in the sv translation.
Merge #928 'Move po gen to cmake'

This includes the necessary fixes to sv.po to make the build work again.
Fix #963.

Problem: Bug was introduced because `os_open` returns `-errno` in case
of an error instead of just `-1` which was returned by `mch_open`.
Solution: Check return value with `< 0` instead of `== -1`.
Merge pull request #964 '[RFC] Fix #963'
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
services.

The `provider_register` function and it's API wrapper can be used by channels
that want to self-register as a service provider.

Some old builtin vim features will be re-implemented as providers. The
`provider_has_feature` function is used to check if a provider
implementing a certain feature is available(It will be called by the `has`
vimscript function to check for features in a vim-compatible way)

This implements the provider module without exposing any extension points, which
will be done in future commits.