A reusable object that collects asynchronous events and triggers it's own final event once all others have been fired.