Dead code: Remove unused vimscript functions(from FEAT_CLIENTSERVER)
API: Refactor: Duplicate/free string arguments coming from msgpack

When receiving strings *from* msgpack, we don't need to duplicate/free since
the data only lives in the msgpack parse buffer until the end of the call.

But in order to reuse `msgpack_rpc_free_object` when sending event data(which is
sent *to* msgpack), Strings must be freed, which means they must also be
allocated separately.
API: Refactor: Close/free channels when their streams reach EOF
API: Events: Return channel id from the API discover request

This refactors msgapck_rpc_{dipatch,call} to receive the channel id as
argument. Now the discovery request returns the [id, metadata] array.
API: Events: Implement channel_send_event and vimscript wrapper

This function can be used to send arbitrary objects via the API channel back to
connected clients, identified by channel id.
Build: Add 'nonnull' attributes to msgpack_rpc functions
Build: Add api/{helpers,handle}.c to CONV_SRCS
Build: Add more files to clint-files.txt and fix errors
Build: Enable valgrind's --leak-check when testing the API
API: Bugfix: Remove memory leak from set_option_to
API: Bugfix: Remove memory leak from buffer_set_slice
API: Bugfix: Remove memory leak from buffer_set_name
API: Bugfix: Remove memory leak from buffer_get_line
Merge branch 'api-events'