sudo: run sudo with a pseudo controlling terminal

In commit 456018a, we assign a TTY to kimchid in the SystemD service
file. This is because sudo requires a TTY by default for security
reason.

Usually Linux daemon detaches from controlling terminal so that it makes
use of the SIGHUP signal to reload its settings. If the daemon has a
console interface for the admin to interact (like a QEMU monitor), it
can have a TTY to run the console interface. At lease for now, Kimchi is
a traditional plain daemon that needs no TTY.

This patch creates a temporary PTY and assigns the slave to the sudo
process as the controlling terminal each time it runs sudo. In this way
we do not have to assign a TTY to kimchid. Maybe it's more portable than
specifying TTY in a SystemD service file.

Before running sudo, it creates a subprocess to make sure the child is
not the session leader. Then the child creates a new session and PYT,
and sets the slave as the controlling termial. At last the child calls
sudo. The result from the child is delivered to the parent via a shared
memory object.

Signed-off-by: Zhou Zheng Sheng <zhshzhou@linux.vnet.ibm.com>