[DO NOT MERGE] Question on Change Detection impl

@vsavkin a few questions on the CD implementation.

My main concern is that all enabled should be reachable from the root range. According to my current understanding of the code this might not be the case.

I think one way to solve this would be that the head marker always point to first enabled record in the range (or to the tail marker when no records are enabled) and to the last enabled record in the previous range (or the head marker).

I won't be available to discuss it tonight, you can comment here and we'll discuss next week.

Disabling records is O(1), disabling ranges is not. I will write a short doc on what operations we support and how they perform.