[WIP][FEATURE] Define basic PubSubQueue API

Includes some refactoring of the AbstractQueue