Contrastive Topographic Models: Energy-based density models applied to the understanding of sensory coding and cortical topography