Riots rock South Africa's capital ahead of vote