Refactor: Use size_t for {w,r}streams.c
WStream: Refactor: Use reference count for memory management

Now `wstream_write` receives pointers for WBuffer objects(created with
wstream_new_buffer), which stores a reference count to determine when it's safe
the free the buffer. This was done to enable writing of the same buffer to
multiple WStream instances
Add kvec.h macro library
API: Bugfix: Remove possible double-free in buffer_get_line
API: Events: Add support for broadcasting events

The channel_send_event will now broadcast events to all subscribed channels if
the 'id' parameter is 0.
API: Events: Automatically pass channel ids to API functions

The dispatch function generator was customized to allow for API functions to
declare a 'channel_id' as first argument.
API: Events: Add functions for {un}subscribing to broadcasted events
Build: Fix autocmd removal from cleanup function
Channel: Refactor: Extract serialize_event function
Channel: Refactor: Extract register_channel function
Merge 'Refactor WStream to enable writing the same buffer to multiple targets'
Extract cursor.h from misc{1,2}.h and memline.h
Enable -Wconversion on cursor.c
Remove ml_ prefix from cursor.h functions

s/ml_get_curline/get_cursor_line_ptr
s/ml_get_cursor/get_cursor_pos_ptr
Add cursor.{c,h} to clint-files.txt
Remove code duplication in get_cursor_rel_lnum
Merge #674 'Extract cursor.h from misc{1,2}.h and memline.h'
Removed FEAT_WINDOWS

Support for multiple windows and status line.
Remove FEAT_DIFF

Support for vim's diff mode.
Remove FEAT_MBYTE

Multi-byte character handling.