Add a variant of Subscribe which takes a stop channel

I chose to add a variant rather than modify the existing function to avoid breaking the API. But if you prefer I can just add the argument to Subscribe.