Kagiso Rabada smashed Stuart Broad's stumps to seal a 107-run victory for South Africa over England in the first Test.