pollable: new 3.0 API (closer to what was API 1.0)

The new pollable API is closer to what was API 1.0 with respect to
the signature of construct() and attach(). In particular, the poller
is now passed again to the constructor rather than to attach().

This is made possible by a new implementation in which we exploit
the fact that, in C++, a struct can inherit from a class, and, vice
versa, a class can inherit from a struct.

Another trick is that we use a static constructor that does not
raise exceptions and that combines the construction and initialization
phases into a single step, thereby emulating the behavior of what
is the moral equivalent of a constructor in C.

Therefore, it is possible to wrap the C++ code (which, let's remember
that, is very useful to produce good SWIG wrappers) with C code easily.

I need to crank the API again, because I've changed again the arguments
that are passed to construct() and attach(), and because I've renamed
the fileno() method get_fileno().