South Africa has it all: cool culture, beautiful beaches and epic wildlife.