The new class is named MultiSpeciesThermo, so that (eventually) the name
SpeciesThermo can be used for the single-species class SpeciesThermoInterpType.
Currently, trivial wrappers for classes named SpeciesThermo and
GeneralSpeciesThermo to maintain backwards compatibiity for Cantera 2.3.
Using this instead of modifyHf298 to reset the thermo data to its original
state avoids round-off errors that otherwise make modifications to the
species thermo data irreversible.
Since the Species object now stores its SpeciesThermoInterpType contents as a
shared_ptr, it is undesirable to have the Species constructor take this as a raw
pointer argument.
These objects do not need to know the index of the species within the phase, so
the new constructors do not take that as an argument.
For the NASA polynomial constructors, the order of the coefficients arrays in
the new constructors has been modified to match the conventional ordering of the
coefficients as written in thermo database files.
The specialized SpeciesThermo derived types offer no performance benefit now
that GeneralSpeciesThermo manages calculation of the temperature terms
efficiently.