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