Added omni-completion.
Changed default completion behavior.
Fixed auto-completion menu.
Popups now behave themselves.

Use cases:
- If the popup menu is open, tab should go to next entry.
- If the popup menu is closed, tab should expand snippet or jump to next snippet
  element if possible, otherwise it should insert a tab character.
- If the popup menu is open, shift + tab should go backwards in the list.
- If the popup menu is open and a snippet is selected, enter should expand the
  snippet.
- If the popup menu is open and a snippet is not selected, enter should insert
  the selection.
- Ctrl + k shoud always complete the current snippet or jump to the next snippet
  element regardless of popup menu state.