Backport combobox to Gitlab UI
Extract the combobox added in gitlab!29124 (merged) for the UI library. Decouple the logic and update the styles.
The behaviors should be as follows:
- Typing matches tokens; dropdown disappears when there is no match
- Up and down arrows navigate the dropdown
- Enter selects keyboard-highlighted item; clicking overrides this
- Esc closes dropdown when it is open, clears field when it is not
- Browser/native dropdown hidden when ours is open, shows when it is not
- Tab selects current entered text and moves to next field
This behavior based on w3c pattern and this accessible combobox example