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
gen_header gen_python: recognize more types

Not needed yet, but we will use these new types soon.
Require explicit constructor name in libneubot.json

Allows to implement classes that have more than one constructor,
which is something that we will need soon.
Add the connection module described in my PhD thesis
Add regression tests for connection and protocol
Add the stringvector module

This module is helpful to implement connect_hostname()
in the connection module.
connection: Implement connect_hostname()
connection: implement IPv4/IPv6 (also with preference)

By default, we prefer IPv4 over IPv6; however, if the family
is PF_UNSPEC6, we prefer IPv6 over IPv4.
connection: implement SSL support (client side only for now)
connection: Implement steal_fileno_()
connection: Implement enable_read() and disable_read()
connection: make connect_hostname more smart

While there for consistency always use PF_INET and PF_INET6.
Ongoing work
Regen
echo_client.cpp: add missing enable_read()
Always use the structure with private members
Add bytes.cpp and bytes.h
Add stringbuffer.cpp stringbuffer.h
More ongoing work