Call `udevadm trigger` before scanning devices

Device symlinks are setup by a usermode helper on Linux. It has been
observed that they can fall out of sync with actual devices. This has
the unpleasant effect of having devices be renamed. This patch attempts
to resolve that by making a best effort attempt to invoke udevadm to
generate the required symlinks before scanning for devices on systems
that use udev.

This suffers from a race because udevadm communicates with udev
asychronously via uevent. We run sched_yield() to put us at the end of
the run queue in an attempt to close the race.

Signed-off-by: Richard Yao <ryao@gentoo.org>