An all-round performance from Bangladesh proved too good for South Africa, who suffered their second successive loss at World Cup 2019.