rstream: Extract some RStream functionality to RBuffer

RBuffer instances represent the internal buffer used by RStreams.

This changes RStream constructor to receive RBuffer pointers and adds a set of
RBuffer methods that expose the lower level buffer manipulation to consumers of
the RStream API.
ui: Refactor input buffer handling

All input buffer code was moved to os/input.c, and `inbuf` is now a `RBuffer`
instance(which abstracts static buffer manipulation).
Merge PR #1300 'Refactor input buffer'
rstream: Initialize 'rstream' field in RBuffer class

This field is used in a conditional jump, so this initialization is fixing a
bug.
rstream: Add rbuffer_read_ptr/rbuffer_write_ptr functions

rbuffer_data was renamed to rbuffer_read_ptr, and it represents the next read
position in a RBuffer instance. Similarly, rbuffer_write_ptr was added to
represent the next write position.

Also, rbuffer_data was being used for writing(in alloc_cb), replace that by
rbuffer_write_ptr.
Merge PR #1306 'RBuffer fixes'
Improve YCM contrib: Fix 'no newline at end of file' issue.

Problem:  YCM was reporting a much disturbing warning about a missing
          newline at the end of some files. This was odd, as the
          newlines were there and the warning only was shown for some
          files, not for all of them.
Cause:    After discussing this issue with @Valloric (see
          https://github.com/Valloric/YouCompleteMe/issues/950), it
          turned out that not YCM, but libclang is responsible for it.
          This is, same compilation flags that produce no warnings with
          clang-the-binary on the command line, do produce them with
          libclang-the-library when used by YCM.
Solution: Add an extra flag (-Wno_newline_eof) to those extracted from
          configuration database before passing them to YCM.
Improve YCM contrib: Improve documentation.
Merge PR #1310 'Improve YCM contrib.'
coverity/71507: Unchecked return value (CHECKED_RETURN)

Don't check for err->set since object_to_vim always return false when error is set
CMake: Set execute permissions during installation.
version: remove "Running in Vi compatible mode" message #1309
Fix sign column redraw

Fixed a bug introduced in SHA:aa66f2487edde49b9a5ba10cd70d706d06a94e25,
due to a misapplied patch. buf_del_sign should redraw the window if the
sign deleted was the last one in the buffer.
Also moved the curwin verification to the correct function.
Merge pull request #1311 from GokuITA/issue1295

Fixed sign column redraw
Merge pull request #1313 from fwalch/runtime-programs

CMake: Set execute permissions during installation.
A few fixes for YCM contrib docs and code
Merge pull request #1319 '[RFC] A few fixes for YCM contrib docs and code'
msgpack-rpc: Create subdirectory for msgpack-rpc modules

Create the msgpack_rpc subdirectory and move all modules that deal with
msgpack-rpc to it. Also merge msgpack_rpc.c into msgpack_rpc/helpers.c
channel: Simplify resource management

- Remove unused rpc_call_level field
- Add `returned` field to ChannelCallFrame. This is set when the call returns
  and is the only condition checked by `channel_send_call`.
- Add job_exit callback for properly closing channels created from job(the
  job_exit callback is only called after all read callbacks, so it's the only
  safe place to free the channel).
event: Remove EventType enum and pass a callback to `event_push`

This approach is more flexible because we don't need to support a fixed set of
"event types", any module can push events to be handled in main loop by simply
passing a callback to the Event structure.