Cape Town voted best city in Africa, hotels scoop top spots