ap: ignore SIGCHLD during exit

Previously, when SIGCHLD trap was set, pkill caused on_sigchld to
execute in the middle of on_exit. on_sigchld in turn calls exit aborts
the cleanup process. This commit minimizes the risk of exiting during
on_exit by ignoring SIGCHLD. Note however, that there is still a race
condition between the on_exit and SIGCHLD of critical childs, but it is
unavoidable because Bash does not have atomic signal masking
capabilities.
ap: cleanup when exiting from SIGCHLD trap

Due to the race condition described in the commit
pr6e4ea8a812d7a70ca78cb81a62b9e4264953df00, exiting because of a death
of a critical child process might not have cleaned up resources.

This commit ensures that on_exit() is always executed before exiting.
ap: fix duplicate channel selection problem

Previously, in multi-radio configurations, it was possible that two
different radios were configured to use the same channel which lead the
latter of the radios to be unused.

This commit fixes the channel selection algorithm to pick the first
unused channel from the previously sorted channel list.
Update VERSION to 0.7.2