Use symbolic constant for Fcntl::FD_CLOEXEC
Set FD_CLOEXEC when creating pipes

This way we do not have to explicitly close the pipes after fork’ing.
Users of Executor.run must explicitly request TM_ERROR_FD

This is done by setting ‘:create_error_pipe’ to ‘true’ in the options passed to the function.

The reason we cannot enable it for all commands is that if the command spawns a background/daemon process without closing all open file descriptors, then the new process will effectively stall TextMate::Executor, as it’s preventing the file descriptor from being closed in the parent.

This commit requires that existing uses of TM_ERROR_FD be updated to specify the new argument — since only a handful of commands use it, this is simpler than having to update all commands that does not use this feature of TextMate::Executor.