Extraxt basic component init code into common class so
Select2ChoiceBaseComponent can be used to built stateless instances of
the Select2; while the AbstractSelect2Choice adds the stateful data
provider logic to the component