add_device_node: act in a chroot

The goal is to avoid an absolute symlink in the guest redirecting
us to the host's /dev.  Thanks to the libvirt team for considering
that possibility!

We want to work on kernels which do not support setns, so we simply
chroot into the container before doing any rm/mknod.  If /dev/vda5
is a symlink to /XXX, or /dev is a symlink to /etc, this is now
correctly resolved locally in the chroot.

We would have preferred to use realpath() to check that the resolved
path is not changed, but realpath across /proc/pid/root does not
work as expected.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
bionic: Define faccessat if missing

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Whitespace fix

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
travis: Workaround buggy build environment

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>