* Update distant-ssh2 with new changes to wezterm-ssh
* Implement lua module (distant-lua)
* Implement tests for lua module (distant-lua-tests)
* Add untested windows daemon support
* distant binary now compiles on windows
* Split up Github actions for Windows, MacOS, and Linux into individual yaml files
* Rename SessionExt -> SessionChannelExt
* Rename SessionExtError -> SessionChannelExtError
* Update SessionChannel to implement SessionChannelExt
* Update Session to not implement SessionChannelExt as it gets this for
free through Deref/DerefMut targeting SessionChannel
* Bump to 0.15.0
* Add new distant-ssh2 subcrate to provide an alternate session as an ssh client
* Add rpassword & wezterm-ssh dependencies
* Rename core -> distant-core in project directory structure and move ssh2 feature into distant-ssh2 crate
* Upgrade tokio to 1.12,
* Update github actions to detect changes and apply testing for only those changes
* Add method parameter to support distant & ssh methods for action and lsp subcommands
* Add ssh-host, ssh-port, and ssh-user parameters to specify information for ssh method
* Remove DistantCodec
* Add Codec trait to support encode & decode
* Add XChaCha20Poly1305 dependency in place of orion
* Add XChaCha20Poly1305Codec that encrypts/signs using XChaCha20Poly1305
* Add PlainCodec that does no encrypting/signing
* Refactor Transport to take generic Codec
* Rewrite to no longer use blake256
* Remove k256 dependency
* Remove Transport::from_handshake as no longer doing EDCH key exchange
* Fix stdout/stderr being sent before proc_start by adding post_hook support to handler such that proc_run tasks are not spawned until proc_start is sent as response
* Remove unneeded else if condition when checking join error type
1. Capture errors when listing directory contents and report them
as part of the response instead of exiting on first error
2. Refactor DirRead request to support providing a depth (instead
of the "all" flag), canonicalizing the paths, and have the choice
of returning absolute paths instead of relative
3. Fix forked process for launch not connecting over TCP to
server due to tokio runtime being inherited from parent
4. Fix leftover launch process caused by forking w/ the old runtime
5. Fix stdout/stderr of running processes not being reported
(when process looping and not returning) by wrapping stdout/stderr
in `BufReader` and sending back one line at a time for each
6. Refactor ProcStdout and ProcStderr responses to send back a line
field that is a string instead of a data field that is a byte vec
as we are now reading and sending back whole lines, which makes
more sense and aligns with output flushing and common stdout/stderr
processing by other programs
1. Add --session argument to launch and action
subcommands that accepts file or pipe for
launch and environment, file, or pipe for action
2. Unify session string as "DISTANT DATA <host> <port> <auth key>"
3. Rename utils to session
4. Split out Session file functionality to SessionFile
5. Remove SessionError in favor of io::Error
6. Bump version to 0.4.0 in preparation for that release