Add thermodynamic potentials

Not ready to be merged. Opening for comments/suggestions.
I'm not sure I agree with the first statement.  In general, there should be an arbitrarily large number of equations of state that do pretty well, but most people use the Murnaghan or Birch-Murnaghan because they are written in terms of properties with nice physical interpretations (i.e., K and K').  To be perfectly honest, I'm not sure why HP uses the Modified Tait, but then goes into this long digression about how it is not that different from BM.  Probably something a reviewer wanted.

So, I don't see an obvious way to generalize them completely, and then there is more complicated stuff, like how Gruneisen parameters and Debye temperatures vary with volume.

In theory, we should be able to mix and match different thermal models, though.  I implemented the Einstein model for a solid a few days ago, and it has the same interface as the Debye model, so it is pretty easy to swap them for each other.  I'm not sure how much is to be gained by that, though.