Adds a Select2TextInput widget

Adds a Select2TextInput widget which provides a combo box for
non-choice fields which can provide a list of pre-set choices, or can
accept arbitrary input.