Handle io watch error conditions gracefully

All calls to g_io_add_watch() request error condition reporting, and
all related callback functions at minimum will not create a virtual
busyloop by leaving the io watch active and ignoring the error state.

The mce io monitoring subsystem is modified so that instead of using
separate io watches for data and error handling + optional error
recovery callback it now has one io watch that first deals with
possible errors and then handles possible input via monitor type
specific logic and enforces delete notification callbacks for making
clean up at upper level logic. This should allow mce to gracefully
handle situations like adding/removing bluetooth keyboards.

[mce] Handle io watch error conditions gracefully
Remove calls to deprecated g_type_init() function

Since GLib 2.36 the type system is initialised automatically
and g_type_init() function does nothing.
Merge pull request #135 from spiiroin/iowatch

Handle io watch error conditions gracefully