do not use pointer addr strings as map keys in set
do not use pointer addr strings as map keys in set

When creating a Set of BasicEdges, the Hashcode function is used to determine
map keys for the underlying set data structure.

The string hex representation of the two vertices' pointers is unsafe to use
as a map key, since these addresses may change between the time they are added
to the set and the time the set is operated on.

Instead we modify the Hashcode function to maintain the references to the
underlying vertices so they cannot be garbage collected during the lifetime
of the Set.

hashicorp/terraform,rnaveiras/terraform,rnaveiras/terraform,tommynsong/terraform,rnaveiras/terraform,tommynsong/terraform,tommynsong/terraform,hashicorp/terraform,hashicorp/terraform