fix(changed-detection): leaking watch records when removing deeply nested watch_groups

Closes #700