Allow some way for PactGroup to automatically finish when all inner pacts are finished.
This is useful when some action is required, but it isn't critical when, and we don't want to block the current code until all tasks are done.
Example usage:
waiter = BackgroundWaiter() # Could be greenlet or something else not in direct control
pact_one = waiter.wait_for(some_thing)
pact_two = waiter.wait_for(some_other_thing)
PactGroup([pact_one, pact_two],automatic=True).then(some_scheduled_task)