work on cursor - trying to understand (one more time) how it all works; seems we should publically use D as system, so that the management can be done all from a D-only transaction
ok, added the second type parameter D to cursor. interestingly `position` can be overloaded, so we don't need to touch stm.Cursor or use a different name. tests pass
ok, so I can't do durable.root probably because the confluent system occupies the root. next step will be dropping from S#Tx to D#Tx in the confluent.cursorRoot call
ok, refactored the root methods. had to break up durable API so we don't need to update lucre-stm. tests pass, but rootWithDurable not tested.
ok, this seems sensible, if breaking previous db -- reserve the durable root ID in the global state init. now that we're at it, also use a more sensible and longer cookie