added NotNull
diff: code review
diff: remove premature optimization

The number of lines in document should not be big enough, that SegmentTree is necessary
diff: rollback ranges one-by-one

This greatly simplifies logic

We need to block LST update during rollback to prevent ranges modifications
diff: rename confusing variables
diff: split method
diff: fix rollback for multicarets
diff: expand changed range on ranges, separated from changed ones only by matched empty/whitespaces lines

Fix some cases of block mismatching
diff: no need to calc diff for trivial cases
diff: create smaller ranges for some cases
diff: do not break on exception