add `patch/2` for applying logical patches (probably retrieved from
a json doc)
fix `move/n` and `copy/n` to work with root docs
maybe_decode path passed to `replace/3`