DynamicSelectionList: optimize updating on buffer modification
DynamicSelectionList: optimize updating on buffer modification

Now that we know selections are sorted, we can get the set of selections
needing updating in log(n) time using a binary search, for modification
not changing the line count, this makes updating selections run in log(n)
instead of n.

alexherbo2/kakoune,casimir/kakoune,jjthrash/kakoune,alexherbo2/kakoune,Somasis/kakoune,Somasis/kakoune,danr/kakoune,rstacruz/kakoune,occivink/kakoune,Somasis/kakoune,elegios/kakoune,occivink/kakoune,danr/kakoune,jjthrash/kakoune,alpha123/kakoune,alexherbo2/kakoune,casimir/kakoune,rstacruz/kakoune,mawww/kakoune,Asenar/kakoune,jjthrash/kakoune,ekie/kakoune,Asenar/kakoune,ekie/kakoune,jjthrash/kakoune,elegios/kakoune,xificurC/kakoune,Somasis/kakoune,rstacruz/kakoune,lenormf/kakoune,lenormf/kakoune,mawww/kakoune,casimir/kakoune,zakgreant/kakoune,flavius/kakoune,Asenar/kakoune,mawww/kakoune,jkonecny12/kakoune,alpha123/kakoune,danr/kakoune,lenormf/kakoune,casimir/kakoune,elegios/kakoune,danielma/kakoune,mawww/kakoune,xificurC/kakoune,jkonecny12/kakoune,alpha123/kakoune,lenormf/kakoune,flavius/kakoune,alpha123/kakoune,ekie/kakoune,danielma/kakoune,zakgreant/kakoune,danr/kakoune,flavius/kakoune,xificurC/kakoune,zakgreant/kakoune,alexherbo2/kakoune,rstacruz/kakoune,jkonecny12/kakoune,occivink/kakoune,ekie/kakoune,elegios/kakoune,zakgreant/kakoune,xificurC/kakoune,jkonecny12/kakoune,flavius/kakoune,occivink/kakoune,danielma/kakoune,danielma/kakoune,Asenar/kakoune