Puts initialValue under key unless something is already there, and returns whichever value ended up in the map.