udev_event_thread calls poll with two fds: the udev fd, and an eventfd
used for shutdown. On FreeBSD we were hanging on shutdown in
udev_monitor_receive_device after receiving the eventfd event.
Now, if the udev fd reports no events skip the
udev_monitor_receive_device call.
At shutdown the loop will exit via os_event_try().
Currently we use signals based on os_event's but the udev code blocks in
a 1s select (now poll) that cannot be signalled without an FD. This adds
an extra eventfd which will be signalled along with the os_event to
trigger the poll.
Also switches from select to poll to avoid issues with large fd values.
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed. Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.