lib/cleaner_exec.c: get process ID of cleanerd through pipe

After applying commit 8ce4b524a1654ece478f54fce772cc0c16e3c559
"cleanerd: call _exit(2) twice for ensuring not being a session
leader", the mount helper program of nilfs2 no longer gets proper
process ID (pid) of cleaner daemon, and umount.nilfs2 fails to kill
cleanerd.

This fixes the issue by letting cleanerd print out the pid of spawned
daemon and letting nilfs_launch_cleanerd() function read it through
pipe.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
mount.nilfs2: ensure gcpid option is dropped if the value is zero

Legacy version of mount.nilfs2 and umount.nilfs2 may leave invalid
mount option string "gcpid=0" in /etc/mtab.  This adds a new macro
replace_drop_opt() which replaces or drops mount option based on the
given condition, and uses the macro to ensure the gcpid option will be
deleted when its value equals zero.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>