simplify: Use edge adjacency data to detect boundary edges
simplify: Use edge adjacency data to detect boundary edges

The edge adjacency table can replace edge hash table for the boundary
lookup; the lookup cost can be slightly higher but the memory access
pattern is nicer, and we don't need to build up the hash table so it
evens out - this change doesn't measurably affect simplification time.

This change removes the hash support code altogether; we will need to
bring it back for position index generation, but that will require a
stateful hasher so might as well reintroduce it separately.

zeux/meshoptimizer,zeux/meshoptimizer,zeux/meshoptimizer