Reworked the checkWellFormed in KineticsFamily for testing database.

The identifying of node names and labels based on the actual nodes 
is different.
First, we check if it's right, i.e. if the groups named in 
the label 'group1;group2;group3' are indeed the same groups in 
the groups.py file.

Then, if not, we try to figure out what it should be called.
For each group in the actual node, we look through the groups.py
file to see if we can find one, and if so suggest that name.

I think this logic flow works better than what was there before,
but I did change/break the way it reports errors. Previously it would
collect them in a list of tuples, then return a tuple of lists, and
whatever function had called it (eg. in EvaluateKinetics.py in the RMG-database
project) would have to deduce what this meant and report the errors.
That means keeping the two files, in different projects, in sync
as the tuple/list syntax changes.  Rather than figure this out, I 
just report the errors as they are detected. If you prefer the other,
mute my logging lines, and compile a tuple as before.

Hope this helps. Feel free to change bits/all of it back!