In deinit(), it is possible that we first free the listeners, then
unbind them all. Right now this situation can't happen because the
only way to call deinit() is to pass via a soft-stop which will
already unbind all protocols. But later this might become a problem.
l = p->listen;
while (l) {
l_next = l->next;
+ unbind_listener(l);
+ delete_listener(l);
free(l->name);
free(l->counters);
free(l);