changesets should be op streams instead of op heaps

context-equivalent operations packed together forming one "changeset" is nice, but it doesn't play that well with merging changesets as well as other stuff.

Plus, all this transform stuff might be way simpler to do with a stream like approach (meaning you have a cursor that kinda zooms through your document, moved by the operations as they insert or delete stuff or leave stuff untouched). This means operations in a changeset will have an order!

 - [x] inclusion transform
 - [x] exclusion transform
 - [x] invert
 - [x] pack/unpack
 - [x] merge
 - [ ] tie breaker