South Africa have named batsman Hashim Amla as their new Test captain following Graeme Smith's retirement from the international game.