Publix earns top spot in consumer satisfaction survey