Consumer won't overflow reporters now.

And also AsyncResults will be processed asap, instead of waiting for report call.
join in 85 empties the queue which writing_handler is using (and handler is not aware whether the join was called or queue is simply empty), but since in writing handler there is while True, he is stuck on get(). So I put _END_WRITING queue, and he gracefully leaves his while loop and writing_handler dies. I don't have to wait for him though, because he finished his purpose. 
I could reuse him but the problem is that if he never exits, then reporter object can't be destroyed (at least unittests hangs). And __del__ is never called :( And creating new threading thread every report is not that expensive.