defer triggers until VCS operations settle
defer triggers until VCS operations settle

Summary:
avoid running trigger scripts until the VCS has settled.
It is possible, even likely, for the VCS to pause in the middle of
large dirstate operations for long enough that we'll perceive that
the filesystem has settled enough for us to start running triggers.

This adds a simple check for the existence of lock files that the VCS
software creates while it is manipulating the repo.

If they exist we'll just return without doing any work.  We'll notice
when they get deleted and carry out the trigger check at that time.

Test Plan:
`arc unit --everything`, then manually tested by rebasing
around in a big repo with the log statements set to error level;
Observed the `deferring triggers until VCS operations complete` message
while the rebase or checkout operations were in-flight, then observed
the trigger script execute once they were done.

Reviewers: sid0

Reviewed By: sid0

Differential Revision: https://phabricator.fb.com/D800656

Task ID: 2334371

kevinsawicki/watchman,webmasteraxe/watchman,yangeagle/watchman,Ziriax/watchman,windofthesky/watchman,kwlzn/watchman,montogeek/watchman,bitemyapp/watchman,Jonekee/watchman,hanhailong/watchman,sdgdsffdsfff/watchman,sdgdsffdsfff/watchman,dhruvsinghal/watchman,dhruvsinghal/watchman,webmasteraxe/watchman,facebook/watchman,windofthesky/watchman,facebook/watchman,michalliu/watchman,kevinsawicki/watchman,amasad/watchman,bhamiltoncx/watchman,kwlzn/watchman,phmx/watchman,exponentjs/watchman,amasad/watchman,Ziriax/watchman,sdgdsffdsfff/watchman,kevinsawicki/watchman,wez/watchman,sdgdsffdsfff/watchman,windofthesky/watchman,exponentjs/watchman,hanhailong/watchman,besarthoxhaj/watchman,yonglehou/watchman,masoncloud/watchman,masoncloud/watchman,supriyantomaftuh/watchman,webmasteraxe/watchman,webmasteraxe/watchman,Jonekee/watchman,exponentjs/watchman,dhruvsinghal/watchman,facebook/watchman,wez/watchman,twitter/watchman,twitter/watchman,hanhailong/watchman,yonglehou/watchman,bhamiltoncx/watchman,nodakai/watchman,supriyantomaftuh/watchman,nodakai/watchman,dcolascione/laptop-watchman,yun63/watchman,dhruvsinghal/watchman,nodakai/watchman,michalliu/watchman,yangeagle/watchman,Ziriax/watchman,dcolascione/laptop-watchman,dcolascione/laptop-watchman,dhruvsinghal/watchman,bitemyapp/watchman,wez/watchman,windofthesky/watchman,dhruvsinghal/watchman,montogeek/watchman,dcolascione/laptop-watchman,nodakai/watchman,kevinsawicki/watchman,bitemyapp/watchman,twitter/watchman,Ziriax/watchman,yonglehou/watchman,sdgdsffdsfff/watchman,supriyantomaftuh/watchman,webmasteraxe/watchman,sdgdsffdsfff/watchman,twitter/watchman,besarthoxhaj/watchman,dhruvsinghal/watchman,twitter/watchman,hanhailong/watchman,supriyantomaftuh/watchman,yangeagle/watchman,kwlzn/watchman,amasad/watchman,hanhailong/watchman,Ziriax/watchman,Jonekee/watchman,facebook/watchman,kwlzn/watchman,besarthoxhaj/watchman,michalliu/watchman,Jonekee/watchman,besarthoxhaj/watchman,kevinsawicki/watchman,webmasteraxe/watchman,hanhailong/watchman,besarthoxhaj/watchman,phmx/watchman,dhruvsinghal/watchman,supriyantomaftuh/watchman,yun63/watchman,yonglehou/watchman,michalliu/watchman,dcolascione/laptop-watchman,besarthoxhaj/watchman,kevinsawicki/watchman,kwlzn/watchman,bitemyapp/watchman,amasad/watchman,facebook/watchman,masoncloud/watchman,webmasteraxe/watchman,phmx/watchman,amasad/watchman,montogeek/watchman,dcolascione/laptop-watchman,montogeek/watchman,bitemyapp/watchman,hanhailong/watchman,yangeagle/watchman,facebook/watchman,dcolascione/laptop-watchman,yonglehou/watchman,wez/watchman,amasad/watchman,windofthesky/watchman,masoncloud/watchman,sdgdsffdsfff/watchman,nodakai/watchman,nodakai/watchman,yun63/watchman,alanwill/watchman,masoncloud/watchman,exponentjs/watchman,kwlzn/watchman,kevinsawicki/watchman,facebook/watchman,michalliu/watchman,twitter/watchman,amasad/watchman,montogeek/watchman,yonglehou/watchman,bhamiltoncx/watchman,wez/watchman,exponentjs/watchman,exponentjs/watchman,bhamiltoncx/watchman,besarthoxhaj/watchman,yun63/watchman,webmasteraxe/watchman,alanwill/watchman,wez/watchman,bitemyapp/watchman,Jonekee/watchman,montogeek/watchman,sdgdsffdsfff/watchman,michalliu/watchman,alanwill/watchman,twitter/watchman,montogeek/watchman,phmx/watchman,facebook/watchman,wez/watchman,masoncloud/watchman,michalliu/watchman,nodakai/watchman,amasad/watchman,kwlzn/watchman,bhamiltoncx/watchman,phmx/watchman,bitemyapp/watchman,nodakai/watchman,yun63/watchman,wez/watchman,montogeek/watchman,nodakai/watchman,supriyantomaftuh/watchman,Jonekee/watchman,phmx/watchman,hanhailong/watchman,dcolascione/laptop-watchman,windofthesky/watchman,alanwill/watchman,yangeagle/watchman,wez/watchman,yangeagle/watchman,michalliu/watchman,yun63/watchman,Ziriax/watchman,yonglehou/watchman,yonglehou/watchman,facebook/watchman,alanwill/watchman,bitemyapp/watchman,yun63/watchman,yangeagle/watchman,supriyantomaftuh/watchman,bhamiltoncx/watchman,besarthoxhaj/watchman,twitter/watchman,windofthesky/watchman,Jonekee/watchman,masoncloud/watchman,supriyantomaftuh/watchman,alanwill/watchman,masoncloud/watchman,Jonekee/watchman,yun63/watchman