Add thermodynamic potentials

Not ready to be merged. Opening for comments/suggestions.
Sanne, you understand HP2011 correctly. I don't think we should generalize, primarily because it will make the code less clear but also because then we won't be using the standard equations, making it more difficult for others to check our code.

Mixing and matching is generally a bad idea, especially with large self-consistent datasets - changing things breaks the dataset in unexpected ways. One place it might be useful is in inverting experimental data - then folks can pick their own favourite set of models. To this end,  we should definitely implement a reference_pressure parameter for high pressure unquenchable phases (like this alleged new hexagonal post-perovskite phase).