Now nodes do not keep a special key, they are mapped by pointer.

Also unordered_map got replaced by map for edges because the only place
they proved to be faster was for very dense graphs (and not even twice
as fast).