exec_always: fix leaks
exec_always: fix leaks

 - child would leak in the workspace_record_pid path
 - removing malloc lets us get rid of That Comment nobody seems
to remember what it was about
 - we would leak pipe fds on first fork failling
 - we didn't return an error if second fork failed
 - the final executed process still had both pipe fds
(would show up in /proc/23560/fd in launched programs)
 - we would write twice to the pipe if execl failed for some reason
(e.g. if /bin/sh doesn't exist?!)

ascent12/sway,taiyu-len/sway,taiyu-len/sway,taiyu-len/sway,ascent12/sway,SirCmpwn/sway,1ace/sway,ascent12/sway,1ace/sway,1ace/sway