job: Fix memory leak in job_start().

If a new job cannot be started because no slots are free, we return early
without freeing the argv argument.
Mark some function arguments as [consumed] in the docs.

The argument argv of job_start() and channel_from_job() will be
freed. Mark them as such in the comments of this functions.
Try to fix problem found in the Travis Ci build.

An uv_pipe_t handle for a WStream could be left open for a
particular code path.

Patch by tarruda.