A gas tanker stuck under a bridge has exploded in Johannesburg, killing eight people, injuring scores more and damaging nearby buildings, according to emergency services.