dropdown: Replace specialized impl From Vec<SharedString> to Vec<T: DropdownItem + Clone> (#935)
Needed for a proc macro i plan to publish when ready
```rs
#[derive(Clone, DropdownItemFtl, EsFluent, EnumIter, EnumString)]
#[fluent(enumerable)]
pub enum PreferedLanguage {
English,
French,
Chinese,
}
#[derive(Clone, DropdownItemFtl, EsFluent, EnumIter, EnumString)]
#[fluent(enumerable)]
pub enum Country {
UnitedStates,
France,
China,
}
#[derive(GpuiForm)]
pub struct User {
#[gpui_form(component(input))]
pub username: Option<String>,
#[gpui_form(component(input))]
pub email: String,
#[gpui_form(component(number_input))]
pub age: Option<u32>,
#[gpui_form(component(number_input))]
pub balance: Decimal,
#[gpui_form(component(check_box))]
pub subscribe_newsletter: bool,
#[gpui_form(component(switch))]
pub enable_notifications: bool,
#[gpui_form(component(dropdown(searchable)))]
pub country: Option<Country>,
#[gpui_form(component(dropdown()))]
pub preferred_language: PreferedLanguage,
#[gpui_form(component(calendar))]
pub birth_date: chrono::NaiveDate,
#[gpui_form(component(date_picker))]
pub appointment_date: chrono::NaiveDate,
#[gpui_form(component(progress))]
pub completion_percentage: f32,
#[gpui_form(skip)]
pub skip_me: bool,
}
```