Improve signal handling

Previously, when the user send C-c during mkarchroot, the SIGINT is sent
to both akabei and mkarchroot. At the moment, SignalException is raised
from Kernel.system and akabei removes the temporary directory [a]. On
the other hand, mkarchroot cleanups chroot in a trap handler [b]. If [a]
is earlier than [b], akabei failed to remove the temporary directory due
to mounted directories such as /proc.

To prevent this situation, akabei traps SignalException and wait for
child process to exit. In this way, The [b] -> [a] order is ensured.