Lightweight event aggregator (publisher/subscriber) for JavaScript