Adapted to the latest API changes in the glib branch

Now only the backend can dispatch sources.
Fixed some threading bugs and inconsistencies
A few cosmetic changes
Support file descriptor types that libuv would abort on

Some descriptor types are non-pollable in the Linux kernel,
which causes EPOLL_CTL_ADD to fail, which is grounds for
libuv to abort.
Erase a redundant backend pointer from poll data structures
Revert "Support file descriptor types that libuv would abort on"

This reverts commit c31fde97662c6bdfa8ec55783d20ac87a5187ada.
Guessing unpollable descriptors by fstat is practically impossible
for e.g. character devices, and if we guess wrong, either we get
a libuv abort or the poll semantics are wrong.
Libuv needs to be changed to report such cases gracefully.
Simplification due to poll modification methods made non-concurrent