msgpack-rpc: Fix error handling and leak in call_request_handler

Free the arguments array after sending the response and also avoid
double-sending responses in cases of errors.
job: Refactor to ensure that all callbacks will be invoked

It's possible that a child process won't close it's standard streams, even after
it exits. This can be evidenced with the "xclip" program:

    :call system('xclip -i -selection clipboard', 'DATA')

Before this commit, the above command wouldn't return, even though the xclip
program had exited. That is because `xclip` wasn't closing it's stdout/stderr
streams, which would block pending_refs from ever reaching 0.

Now the job.c module was refactored to ensure all streams are closed when the
uv_process_t handle is closed.
travis: Setup xvfb for running xclip tests
job: Only decrease refcount after `settmode` in `job_wait`

This is required to prevent the scenario explained by @akkartik in #1324
msgpack-rpc: Improve logging of msgpack-rpc messages

- Expose more logging control from the log.c module(get log stream and omit
  newlines)
- Remove logging from the generated functions in msgpack-gen.lua
- Refactor channel.c/helpers.c to log every msgpack-rpc payload using
  msgpack_object_print(a helper function from msgpack.h)
- Remove the api_stringify function, it was only useful for logging msgpack-rpc
  which is now handled by msgpack_object_print.
test: add exception test to vim_spec.lua