track parents instead of paths (fix array shifts)

- do not track paths directly; track parents instead
- remove json-pointer dependency