Check to make sure provider isn't null before detaching it
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
Merge pull request #98 from pfranza/master

Refactor to extract common component init code into its own class to serve as a stateless version of the class, and then allow the existing abstract class to add the stateful data provider logic