Eric Freese e405afab29 Refactor async mode to no longer use zpty
See technique used in `fast-syntax-highlighting`:
- ca2e18bbc9
- http://www.zsh.org/mla/users/2018/msg00424.html

Also see http://www.zsh.org/mla/users/2018/msg00432.html

In async response handler:
- We only want to read data in case of POLLIN or POLLHUP. Not POLLNVAL
  or select error.
- We always want to remove the handler, so it doesn't get called in an
  infinite loop when error is nval or err.

There is an upstream bug that prevents ctrl-c from resetting the prompt
immediately after a suggestion has been fetched asynchronously. A patch
has been submitted, but a workaround for now is to add `command true`
after the exec.

See https://github.com/zsh-users/zsh-autosuggestions/issues/364
..
integrations Refactor async mode to no longer use zpty
options Refactor async mode to no longer use zpty
strategies Revert async process substitution & completion strategy
widgets Enabling suggestions should not fetch a suggestion if buffer is empty
async_spec.rb Refactor async mode to no longer use zpty
kill_ring_spec.rb Don't break kill ring rotation
multi_line_spec.rb Lots of async changes
spec_helper.rb Don't overwrite config with default values
terminal_session.rb Revert async process substitution & completion strategy