text: Title: Refactoring: completer
  Body: - [ ] To prevent issues like https://github.com/xonsh/xonsh/issues/5809 in general we need to treat the completers which returns the list of empty lines like return None. Start point is [here](https://github.com/xonsh/xonsh/blob/bb75a5a53ba6b5e4ed60ae88839283075e9f47dc/xonsh/completer.py#L312).
  - [ ] We have a bad pattern when we have a code [bash_completion in xonsh](https://github.com/xonsh/xonsh/blob/main/xonsh/completers/bash_completion.py) that is a copy of [bash_completion in py-bash-completion](https://github.com/xonsh/py-bash-completion/blob/main/bash_completion.py) repository and the code have mismatch. We need to remove copy-pasting. My suggestion: create a xontrib in py-bash-completion, create xontrib-bash-completion package and add it as dependency to xonsh, then remove xonsh/completers/bash_completion.py.
  - [ ] #3914
  
  ## For community
  ⬇️  **Please click the 👍 reaction instead of leaving a `+1` or 👍  comment**
  