* 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
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