Make the hub a subclass of greenlet

This simplifies things quite a bit.