Bugfix: isomorphism check was not strict enough

Some non-isomorphic graphs were erroneously considered to be isomorphic. It could
happen that two different nodes were not compared as they've already been marked as
visited by some other comparisons. With this commit, nodes are compared with every
visit.
I'm not sure we can use `Node` as a key in a map. There is no `equals` method defined on nodes, and I don't think it's guaranteed that retrieving a node from the graph twice will return the same object. Please use node IDs as keys. This also means you'll have to use two maps, one for left, and one for right.

If you're touching this anyway, please move the parameters `left` and `right` to the beginning of the parameters list.