fix(tactic/assert_exists): use more unique names (#17916)
Previously we were relying on `tactic.mk_fresh_name` being globally unique, but this turned out to not be the case. Now we also combine the declaration name / instance string with the fresh name, to reduce the chance of conflicts.