average salary in south africa for software engineer