Consumer won't overflow reporters now.

And also AsyncResults will be processed asap, instead of waiting for report call.
Yeah, I'm okay with the ```_END_WRITING``` bit, that should make it return gracefully indeed, but I think that you should have a ```self._writing_handler.join()```? Technically, I think the ```threading``` module will make it work for you if you skip it, but I'd like to have it explicitly, just to be sure that it's exited properly.