Henrik Stenson has won the South African Open at Serengeti by three shots to claim his first European Tour success in three-and-a-half years.