Cheteshwar Pujara's first century on foreign soil ensured India were strong favourites to end their woeful recent away record after a dominant day three against South Africa in the first Test at Johannesburg.