add consumeUntilDrained API to NotificationQueue::Consumer
add consumeUntilDrained API to NotificationQueue::Consumer

Summary:
... and employ it in EventBase's destructor to stop leaking memory from unexecuted NotificationQueue-variety runInEventBaseThread() callbacks

in addition to the attached task, this should also fix the root cause of the already-worked-around #5564342

Test Plan:
test no longer leaks.* on the other hand, IOThreadPoolExecutor::stop() no longer actually stops, it joins. I added comments to stop() in headers indicating that it should be treated as best-effort.

* hilariously, this actually isn't true - there's a new leak of a thread local inside the io pool because callbacks can outlive the pool now. i'll leave a full explanation for the upcoming patch.

Reviewed By: davejwatson@fb.com

Subscribers: alandau, bmatheny, mshneer, trunkagent, fugalh, njormrod, folly-diffs@

FB internal diff: D1682860

Tasks: 5336655

Signature: t1:1682860:1416347774:ac5f31fb72373992f425c93ac284a0cd27608db4

kangkot/fbthrift,soumith/fbthrift,Orvid/fbthrift,project-zerus/fbthrift,LinusU/fbthrift,LinusU/fbthrift,uber/fbthrift,soumith/fbthrift,kangkot/fbthrift,raphaelamorim/fbthrift,maxwell-demon/fbthrift,project-zerus/fbthrift,uber/fbthrift,Orvid/fbthrift,jesboat/fbthrift,chjp2046/fbthrift,jesboat/fbthrift,HankFaan/fbthrift,SergeyMakarenko/fbthrift,project-zerus/fbthrift,uber/fbthrift,HankFaan/fbthrift,raphaelamorim/fbthrift,Orvid/fbthrift,project-zerus/fbthrift,uber/fbthrift,facebook/fbthrift,jesboat/fbthrift,sinjar666/fbthrift,guker/fbthrift,jesboat/fbthrift,getyourguide/fbthrift,maxwell-demon/fbthrift,HankFaan/fbthrift,LinusU/fbthrift,Orvid/fbthrift,uber/fbthrift,maxwell-demon/fbthrift,guker/fbthrift,sinjar666/fbthrift,chjp2046/fbthrift,kangkot/fbthrift,Orvid/fbthrift,kangkot/fbthrift,fengshao0907/fbthrift,facebook/fbthrift,fengshao0907/fbthrift,maxwell-demon/fbthrift,project-zerus/fbthrift,SergeyMakarenko/fbthrift,maxwell-demon/fbthrift,sinjar666/fbthrift,raphaelamorim/fbthrift,jesboat/fbthrift,facebook/fbthrift,maxwell-demon/fbthrift,facebook/fbthrift,kangkot/fbthrift,chjp2046/fbthrift,project-zerus/fbthrift,SergeyMakarenko/fbthrift,LinusU/fbthrift,Orvid/fbthrift,Orvid/fbthrift,sinjar666/fbthrift,LinusU/fbthrift,LinusU/fbthrift,SergeyMakarenko/fbthrift,maxwell-demon/fbthrift,fengshao0907/fbthrift,maxwell-demon/fbthrift,fengshao0907/fbthrift,sinjar666/fbthrift,chjp2046/fbthrift,jesboat/fbthrift,LinusU/fbthrift,soumith/fbthrift,soumith/fbthrift,uber/fbthrift,soumith/fbthrift,SergeyMakarenko/fbthrift,fengshao0907/fbthrift,LinusU/fbthrift,guker/fbthrift,project-zerus/fbthrift,uber/fbthrift,SergeyMakarenko/fbthrift,kangkot/fbthrift,HankFaan/fbthrift,SergeyMakarenko/fbthrift,HankFaan/fbthrift,guker/fbthrift,facebook/fbthrift,fengshao0907/fbthrift,raphaelamorim/fbthrift,project-zerus/fbthrift,kangkot/fbthrift,sinjar666/fbthrift,jesboat/fbthrift,sinjar666/fbthrift,sinjar666/fbthrift,getyourguide/fbthrift,SergeyMakarenko/fbthrift,raphaelamorim/fbthrift,kangkot/fbthrift,uber/fbthrift,getyourguide/fbthrift,soumith/fbthrift,getyourguide/fbthrift,guker/fbthrift,kangkot/fbthrift,guker/fbthrift,jesboat/fbthrift,soumith/fbthrift,LinusU/fbthrift,getyourguide/fbthrift,HankFaan/fbthrift,project-zerus/fbthrift,HankFaan/fbthrift,kangkot/fbthrift,raphaelamorim/fbthrift,fengshao0907/fbthrift,project-zerus/fbthrift,LinusU/fbthrift,chjp2046/fbthrift,raphaelamorim/fbthrift,uber/fbthrift,chjp2046/fbthrift,getyourguide/fbthrift,fengshao0907/fbthrift,raphaelamorim/fbthrift,guker/fbthrift,getyourguide/fbthrift,jesboat/fbthrift,sinjar666/fbthrift,Orvid/fbthrift,facebook/fbthrift,soumith/fbthrift,HankFaan/fbthrift,soumith/fbthrift,uber/fbthrift,getyourguide/fbthrift,getyourguide/fbthrift,project-zerus/fbthrift,getyourguide/fbthrift,chjp2046/fbthrift,raphaelamorim/fbthrift,uber/fbthrift,SergeyMakarenko/fbthrift,SergeyMakarenko/fbthrift,raphaelamorim/fbthrift,guker/fbthrift,guker/fbthrift,Orvid/fbthrift,soumith/fbthrift,HankFaan/fbthrift,getyourguide/fbthrift,maxwell-demon/fbthrift,sinjar666/fbthrift,getyourguide/fbthrift,fengshao0907/fbthrift,jesboat/fbthrift,SergeyMakarenko/fbthrift,soumith/fbthrift,sinjar666/fbthrift,facebook/fbthrift,raphaelamorim/fbthrift,guker/fbthrift,Orvid/fbthrift,HankFaan/fbthrift,LinusU/fbthrift,chjp2046/fbthrift,jesboat/fbthrift,facebook/fbthrift,maxwell-demon/fbthrift,chjp2046/fbthrift,fengshao0907/fbthrift,SergeyMakarenko/fbthrift,kangkot/fbthrift,fengshao0907/fbthrift,guker/fbthrift,project-zerus/fbthrift,HankFaan/fbthrift,chjp2046/fbthrift,facebook/fbthrift,Orvid/fbthrift,jesboat/fbthrift,chjp2046/fbthrift,uber/fbthrift,maxwell-demon/fbthrift,chjp2046/fbthrift