England had another good day in Johannesburg as they closed in on victory in their final Test against South Africa.