Add error handling to glib io watches

Make sure every g_io_add_watch() call requests also error conditions
and fix callbacks so that realized error conditions do not leave the
io watch active and thus generate a virtual busyloop.

[dsme] Add error handling to glib io watches. Fixes JB#17046
Merge pull request #62 from spiiroin/iowatch

Add error handling to glib io watches