simsym: Support more than two values to symeq
spec: Fix bug in equality isomorphism generation

Previously, we tracked only a single representative expression for
each value and required that they be distinct.  However, this isn't
complete.  For example, consider rename/rename on a path where there
are no initial constraints on the file names.  If Z3 happens to give
us f!0 for all file names, e.g.
  rename("f0", "f0"); / rename("f0", "f0);
then the filename Interpreter's only key will be f!0, so there will
only be one representative (e.g., a.src) and the resulting isomorphism
condition will have nothing to say about the file names.

Fix this by tracking *all* representative expressions for each value
and additionally requiring all of the expressions for each value to be
equal in the isomorphism.