CHANGES:
- Refine change_and_push semantics (fixing on GitHub #1 #2 - @reynir @dinosaure @hannesm git.robur.coop #2)
- only a single task may execute it at once (using a Lwt_mutex.t to protect this)
- abort if the state is updated in parallel by a different task while change_and_push is executing
- Do the rename inside a change_and_push (so only a single commit from a rename), git.robur.coop #3
- Add alcotest unit tests
- Fix CRAM tests