Please describe the essential ideas of the cavity model for partitioning. What does this imply for the understanding and modelling of partition constants?