Fix issue with cancellation corrupting LS state.
Fix issue with cancellation corrupting LS state.

The problem here was as follows:
1) Host calls into the LS to do some sort of operation.
2) LS tries to synchronize with the host.
3) During synchronization we attempt to create a new program.
4) Creating the new program causes us to incrementally update some source files.
5) Incrementally updating a source file produces a new source file, and invalidates the old one.
6) *Then* the host asks to cancel this operation.
7) THe synchronization process cancels itself, leaving the LS in an inconsistent state where some
   of its source files have had their trees updated, but the information about the source file still
   thinks that we have the previous version.

The fix is to not allow cancellation during host synchronization.  Once we start, we have to go
all the way to completion.

kingland/TypeScript,webhost/TypeScript,HereSinceres/TypeScript,kimamula/TypeScript,msynk/TypeScript,Mqgh2013/TypeScript,DanielRosenwasser/TypeScript,progre/TypeScript,jwbay/TypeScript,plantain-00/TypeScript,pcan/TypeScript,keir-rex/TypeScript,gonifade/TypeScript,kingland/TypeScript,jamesrmccallum/TypeScript,rgbkrk/TypeScript,mszczepaniak/TypeScript,alexeagle/TypeScript,moander/TypeScript,fearthecowboy/TypeScript,sassson/TypeScript,rgbkrk/TypeScript,kimamula/TypeScript,kitsonk/TypeScript,zmaruo/TypeScript,evgrud/TypeScript,zhengbli/TypeScript,SaschaNaz/TypeScript,kpreisser/TypeScript,Raynos/TypeScript,Viromo/TypeScript,jbondc/TypeScript,kimamula/TypeScript,bpowers/TypeScript,nojvek/TypeScript,ziacik/TypeScript,yazeng/TypeScript,kumikumi/TypeScript,rodrigues-daniel/TypeScript,germ13/TypeScript,mszczepaniak/TypeScript,chuckjaz/TypeScript,JohnZ622/TypeScript,hitesh97/TypeScript,abbasmhd/TypeScript,fearthecowboy/TypeScript,msynk/TypeScript,kingland/TypeScript,progre/TypeScript,mmoskal/TypeScript,JohnZ622/TypeScript,chocolatechipui/TypeScript,fabioparra/TypeScript,rgbkrk/TypeScript,pcan/TypeScript,HereSinceres/TypeScript,ionux/TypeScript,fabioparra/TypeScript,DanielRosenwasser/TypeScript,erikmcc/TypeScript,kumikumi/TypeScript,SmallAiTT/TypeScript,vilic/TypeScript,SaschaNaz/TypeScript,kimamula/TypeScript,HereSinceres/TypeScript,synaptek/TypeScript,minestarks/TypeScript,mihailik/TypeScript,samuelhorwitz/typescript,jeremyepling/TypeScript,yazeng/TypeScript,samuelhorwitz/typescript,webhost/TypeScript,ziacik/TypeScript,bpowers/TypeScript,hitesh97/TypeScript,abbasmhd/TypeScript,suto/TypeScript,yazeng/TypeScript,ionux/TypeScript,moander/TypeScript,mcanthony/TypeScript,evgrud/TypeScript,Eyas/TypeScript,MartyIX/TypeScript,rodrigues-daniel/TypeScript,plantain-00/TypeScript,Viromo/TypeScript,shovon/TypeScript,nycdotnet/TypeScript,tempbottle/TypeScript,basarat/TypeScript,SmallAiTT/TypeScript,jteplitz602/TypeScript,vilic/TypeScript,jteplitz602/TypeScript,Viromo/TypeScript,nagyistoce/TypeScript,ropik/TypeScript,jteplitz602/TypeScript,OlegDokuka/TypeScript,weswigham/TypeScript,yortus/TypeScript,OlegDokuka/TypeScript,jamesrmccallum/TypeScript,mcanthony/TypeScript,evgrud/TypeScript,AbubakerB/TypeScript,billti/TypeScript,billti/TypeScript,SimoneGianni/TypeScript,jbondc/TypeScript,erikmcc/TypeScript,impinball/TypeScript,microsoft/TypeScript,mcanthony/TypeScript,shovon/TypeScript,MartyIX/TypeScript,jdavidberger/TypeScript,samuelhorwitz/typescript,Mqgh2013/TypeScript,ZLJASON/TypeScript,gonifade/TypeScript,alexeagle/TypeScript,chuckjaz/TypeScript,Raynos/TypeScript,kitsonk/TypeScript,TukekeSoft/TypeScript,DanielRosenwasser/TypeScript,Raynos/TypeScript,ropik/TypeScript,Microsoft/TypeScript,shiftkey/TypeScript,zmaruo/TypeScript,Eyas/TypeScript,bpowers/TypeScript,jwbay/TypeScript,nojvek/TypeScript,chuckjaz/TypeScript,chocolatechipui/TypeScript,shiftkey/TypeScript,gdi2290/TypeScript,jeremyepling/TypeScript,chocolatechipui/TypeScript,hoanhtien/TypeScript,ropik/TypeScript,tinganho/TypeScript,evgrud/TypeScript,fearthecowboy/TypeScript,synaptek/TypeScript,DLehenbauer/TypeScript,hoanhtien/TypeScript,shanexu/TypeScript,nojvek/TypeScript,thr0w/Thr0wScript,zmaruo/TypeScript,weswigham/TypeScript,blakeembrey/TypeScript,yortus/TypeScript,matthewjh/TypeScript,RReverser/TypeScript,mauricionr/TypeScript,basarat/TypeScript,rodrigues-daniel/TypeScript,pcan/TypeScript,shanexu/TypeScript,ZLJASON/TypeScript,MartyIX/TypeScript,enginekit/TypeScript,JohnZ622/TypeScript,suto/TypeScript,sassson/TypeScript,thr0w/Thr0wScript,SimoneGianni/TypeScript,shovon/TypeScript,microsoft/TypeScript,jdavidberger/TypeScript,shanexu/TypeScript,germ13/TypeScript,matthewjh/TypeScript,mihailik/TypeScript,SimoneGianni/TypeScript,jbondc/TypeScript,shiftkey/TypeScript,keir-rex/TypeScript,DLehenbauer/TypeScript,donaldpipowitch/TypeScript,jeremyepling/TypeScript,ZLJASON/TypeScript,Eyas/TypeScript,nycdotnet/TypeScript,billti/TypeScript,SaschaNaz/TypeScript,nagyistoce/TypeScript,tempbottle/TypeScript,matthewjh/TypeScript,JohnZ622/TypeScript,Microsoft/TypeScript,DLehenbauer/TypeScript,fabioparra/TypeScript,RReverser/TypeScript,SaschaNaz/TypeScript,MartyIX/TypeScript,gonifade/TypeScript,RyanCavanaugh/TypeScript,basarat/TypeScript,DLehenbauer/TypeScript,thr0w/Thr0wScript,SmallAiTT/TypeScript,mihailik/TypeScript,mcanthony/TypeScript,nycdotnet/TypeScript,zhengbli/TypeScript,jdavidberger/TypeScript,alexeagle/TypeScript,kpreisser/TypeScript,minestarks/TypeScript,tempbottle/TypeScript,AbubakerB/TypeScript,vilic/TypeScript,Raynos/TypeScript,erikmcc/TypeScript,chuckjaz/TypeScript,mmoskal/TypeScript,shanexu/TypeScript,nycdotnet/TypeScript,samuelhorwitz/typescript,DanielRosenwasser/TypeScript,mauricionr/TypeScript,blakeembrey/TypeScript,fabioparra/TypeScript,ziacik/TypeScript,tinganho/TypeScript,plantain-00/TypeScript,enginekit/TypeScript,TukekeSoft/TypeScript,zhengbli/TypeScript,erikmcc/TypeScript,moander/TypeScript,mmoskal/TypeScript,mszczepaniak/TypeScript,sassson/TypeScript,mauricionr/TypeScript,microsoft/TypeScript,kumikumi/TypeScript,jwbay/TypeScript,webhost/TypeScript,blakeembrey/TypeScript,abbasmhd/TypeScript,RReverser/TypeScript,rodrigues-daniel/TypeScript,impinball/TypeScript,OlegDokuka/TypeScript,hitesh97/TypeScript,moander/TypeScript,yortus/TypeScript,mauricionr/TypeScript,ziacik/TypeScript,suto/TypeScript,jamesrmccallum/TypeScript,kpreisser/TypeScript,vilic/TypeScript,donaldpipowitch/TypeScript,msynk/TypeScript,plantain-00/TypeScript,RyanCavanaugh/TypeScript,donaldpipowitch/TypeScript,kitsonk/TypeScript,synaptek/TypeScript,Microsoft/TypeScript,ionux/TypeScript,jwbay/TypeScript,keir-rex/TypeScript,AbubakerB/TypeScript,ropik/TypeScript,thr0w/Thr0wScript,AbubakerB/TypeScript,TukekeSoft/TypeScript,donaldpipowitch/TypeScript,nagyistoce/TypeScript,ionux/TypeScript,mmoskal/TypeScript,tinganho/TypeScript,nojvek/TypeScript,enginekit/TypeScript,germ13/TypeScript,progre/TypeScript,synaptek/TypeScript,RyanCavanaugh/TypeScript,Eyas/TypeScript,Viromo/TypeScript,hoanhtien/TypeScript,weswigham/TypeScript,blakeembrey/TypeScript,mihailik/TypeScript,basarat/TypeScript,yortus/TypeScript,minestarks/TypeScript,impinball/TypeScript,Mqgh2013/TypeScript