This uses a new C++ data structure as base for the C EdgeSet.
Currently, the new implementation is up to 5% slower than the old
implementation that only worked with edges. I think I should be
able to make it a little faster in the future. However, in my opinion
even without that, this new implementation is preferable to the
old one.
I intend to update the other hash table implementations as well
over time. Just started with this one, because it is the simplest.