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.
Improve error reporting in checkWellFormed

1) Less code duplication by grouping the if statements 'if not (a and b):'
2) Report what the group definition should be if the label were correct
   (this could be helpful if the label was right but the groups out of date)
Merge pull request #1 from rwest/databaseTest

Reworked the checkWellFormed in KineticsFamily for testing database.