Mitchell Johnson ran through South Africa's top order on day two to give Australia total control of the first Test at Centurion.