Enable a new keyword "solvent" for any database.

For now, keyword only used for thermo and kinetic databases.
Store the solvent found in thermo or kinetics.

Attributes are correctly stored if gas and liquid phase libraries are loaded.
Created new checks on libraries.

Import the database error class, created new checks to avoid use of liquid phase library in gas phase simulation and if solvent are not the same in the input and the library.
Fix bug in processThermoData function of rmgpy/rmg/model.py

Does not retain corrections from solvation if the thermo0 object
started out as NASA..  We never had this problem earlier because
thermo libraries were also ThermoData objects.  But this is a clear bug.

Thanks @chatelak for finding this bug.
Fix to previous commit 80e9759 for checking thermoClass in processThermoData.

Cannot use isinstance to check thermoClass because thermoClass is passed in as
a type, not an object of that type.  Therefore, checking typeNASA against typeNASA
will be false.  Using thermoClass is type statement instead.
Make generateThermoData function less redundent.  Closes issue https://github.com/GreenGroup/RMG-Py/issues/319

Previously, calling the getThermoData function also tries to getThermoFromLibaries, which
is already called in the generateThermoData function earlier.  By changing this line to
getThermoDataFromGroups, we make it less redundent.
Remove calculation of Cp0 and CpInf in getThermoData() function.

It is already being calculated in the subfunctions getThermoDataFromLibraries
and getThermoDataFromGroups
Keyword to identify if getThermoData is called during trainingSet or not.

Pass an argument in getThermoData when it is called during training to avoid wrong reverse rate calculation if reactant or product is matching a liquid thermo library.
Few changes to manage all cases

-Globally define self.solvent to avoid attribute error in the getThermoDataFromLibrairies when calls by the training set.
-Moved the checkLibrairies and execute it just after loading all databases.
Not apply solvation on species matching liquid thermo librairies.

Add new conditions to apply solvation based on the string in thermo0.comment
Change the logging to give the name of the matching library.
Changes to manage liquid thermo libraries in getThermoFromLibraries

Code running correclty if function called during the trainingSet or during `spec.generateThermoData` in main.py.
Pass the trainingSet variable in getThermoFromLibraries when called from getThermoData.
Bug fix

Recent changes in 80e9759ebb0d7792695b8f23df207d7ec20b88ae and then 7b25cf5f597d566be7c5d05da24565c65075f090 induced NASA polynomials coefficient changes even if species was mathing a thermo.
Changes on thermo were not so high (<0.5kcal/mol) on the enthalpy of formation. But it is better like this.