A massive fire has destroyed dozens of migrant shelters in Ceuta, forcing hundreds to flee.