QueueingEventSubject
An EventSource that can also consume events. If it has a subscriber, events will be immediately forwarded to that subscriber. If it doesn't have a subscriber, it will queue up events (up to the maximum capacity specified in the constructor), and forward all queued events to the next subscriber. Only a single subscription at a time is permitted.