Blocking consumers

Appreciate that you're cool with me pushing to master, but I prefer pull requests.

I think this is the cleanest way to support blocking consumers, but I'm happy to discuss if you think it should be integrated into `subscribe` somehow.