Reduce size of a bare Signal<> to sizeof(pointer)

Remove internal index_, only vector<Slot>* remains. We take
the last slot's id_ + 1 for each new id_, or 0 if empty.
Fix Generator<T> subclassing

Overriding next() was broken. Also remove Generator<T>::const_iterator
which did not make sense.
Track Socket state (unfinished)