Allow aborting a collect() early

If part way through a collect() you decide you've had enough data there is no convenient way to stop the rest of the collection process from the collector.