Add thermodynamic potentials

Not ready to be merged. Opening for comments/suggestions.
Ok, excellent. I completely agree that this should go in the base class ... can I give this to you, Ian? 

As for the name, I think the attribute is correctly named. It certainly makes sense to have self.pressure, if there's also self.temperature. Maybe eos_pressure would be a good name for the function?