pollable: use safer idiom for C++-to-C glue code

Instead of using a structure inherited from a class, as in

    namespace Neubot {
        class Foo {
            // private stuff
          public:
            // public stuff
        };
    }

    struct NeubotFoo : public Neubot::Foo {
        // safe only if nothing here
    };

    ...

    struct NeubotFoo *
    NeubotFoo_construct(void)
    {
        return (static_cast<NeubotFoo *>(
          Neubot::Foo::construct()));
    }

we decided to use two structures, as in

   struct NeubotFoo {
     private:
       // private stuff here
     public:
       // public stuff here
   };

   struct NeubotFooWrapper : struct NeubotFoo {
       // whathever...
   };

   ...

   struct NeubotFoo *
   NeubotFoo_construct(...)
   {
       return (NeubotFooWrapper_construct(...));
   }

As we have seen in 83c6d1a284056, one has to be careful with the former
idiom, which is only safe as long as NeubotFoo adds nothing to Neubot::Foo.

On the contrary, the latter idiom is always safe, therefore, we decided
to use it everywhere in the tree (starting from the master branch).

The trick is that (as we learned today) one can declare private certain
portions of a C++ struct.

OK and with help from @bassosimone.

Conflicts:
	libneubot.cpp