Use isSubgroupIsomorphic in checkWellFormed

Suggested by bbuesser. I am copying his commit message:

- the previous code assumes the same ordering for atoms and bonds
- if groups are read from rules.py it can be that they are stored in
different order leading to false cases of notSubgroup. This can happen
even if the adjacency lists of a group are identical in groups.py and
rules.py.
- the function isSubgraphIsomorphic does not depend on any ordering

Some other edits
-The function can no longer tell which atoms are incorrect (but it should
be obvious from the adj list)
-Therefore, instead of using a dictionary with nodeName and atomIndicies,
I am just using a list of nodeNames to pass the malformed nodes of this
case
Fix bug in comparing rule vs group adjLists

For the portion where we check if a rule's adjList matches the group's
adjList, I was checking every combination and saving each mismatch. For
example, if we have a and b in the rules, which should match A and B in
the groups I checked:

a-->A, no mismatch
a-->B, mismatch
b-->A mismatch
b-->B no mismatch

Therefore, I would save the two mismatches, even though the groups are
correct.

Now I have changed the looping structure, so that it only notes a
mismatch, if one of the rule's adj list does not match anything in the
groups.
Add parent as output for child checking

I realized it makes it a little bit easier to make the manual fixes if I
print the parent as well as the child when there is a malformed child
parent relationship.