Constrained Predictive Coding as a Biologically Plausible Model of the Cortical Hierarchy