Fix timeout cancelation in Baton::timed_wait
Fix timeout cancelation in Baton::timed_wait

Summary: After switching to deque in TimeoutController, we should only cancel Timeout Handle if we know it was removed from deque by timeout event. The only way to check this it to make sure timeout function was not run.

Test Plan: unit tests

Reviewed By: @alikhtarov

Differential Revision: D1882825
seem-sky/mcrouter,synecdoche/mcrouter,leitao/mcrouter,seem-sky/mcrouter,leitao/mcrouter,glensc/mcrouter,yqzhang/mcrouter,reddit/mcrouter,synecdoche/mcrouter,apinski-cavium/mcrouter,yqzhang/mcrouter,yqzhang/mcrouter,reddit/mcrouter,nvaller/mcrouter,nvaller/mcrouter,evertrue/mcrouter,zhlong73/mcrouter,glensc/mcrouter,leitao/mcrouter,facebook/mcrouter,reddit/mcrouter,leitao/mcrouter,nvaller/mcrouter,synecdoche/mcrouter,tempbottle/mcrouter,zhlong73/mcrouter,easyfmxu/mcrouter,glensc/mcrouter,evertrue/mcrouter,reddit/mcrouter,facebook/mcrouter,is00hcw/mcrouter,tempbottle/mcrouter,tempbottle/mcrouter,seem-sky/mcrouter,easyfmxu/mcrouter,zhlong73/mcrouter,synecdoche/mcrouter,facebook/mcrouter,zhlong73/mcrouter,is00hcw/mcrouter,evertrue/mcrouter,nvaller/mcrouter,seem-sky/mcrouter,easyfmxu/mcrouter,evertrue/mcrouter,is00hcw/mcrouter,facebook/mcrouter,glensc/mcrouter,apinski-cavium/mcrouter,is00hcw/mcrouter,yqzhang/mcrouter,tempbottle/mcrouter,apinski-cavium/mcrouter,apinski-cavium/mcrouter,easyfmxu/mcrouter