A teary Jacques Kallis struck an emotional farewell century at Kingsmead in his final Test to become the third highest Test run-scorer.