Thousands of opposition supporters have held the largest protest against President Robert Mugabe in nearly a decade.