- improve docs hopefully everywhere basically
- minor improvements to channel reading
- added message to timeout decorator to be more clear why/where things time out
- migrated away from signals (yay for windows i guess) for decorator -- due to systemssh doing things in new procs signal wouldn't work there, new implementation is concurrent futures threads
- added `timeout_exit` to kill connections if timeout occurs (or not)
- a little bit better/more logging especially in decorator (more to go for sure though)
- updated all core drivers to reflect on_open/on_close callabales, removed "exit_command" entirely
- simplified network driver due to moving to on_open/on_close
- modified netowrk driver `send_commands` to only accept a list of commands to send, added `send_command` which only accepts a single command
- due to above change only return a list of responses if using `send_commands` -- if using `send_command` just return a response object
- added exception for keepalive failure -- raised by keepalive thread if/when keepalives are missed for > 3x the keepalive interval -- this may need to get changed/tweaked in the future and/or add a `keepalive_exit` flag like the timeout
- `textfsm_parse_output` no longer updates the response object w/ results (in place operation), it now returns results and there is no "structured_result" attribute of the response object
- removed external function validation stuff from helper -- was neat maybe but not necessary for now, on_open/on_close simply accept callables no need to parse a text string to try to import things... could be added back in the future easy enough if it seems useful
- transport base class now has a useful init method that sub classes can super
- transport child classes that create a socket (paramiko/ssh2) now do so via composition instead of inheritance -- mro was just annoying, plus couldnt (easily? at all?) super w/ different args to transport vs socket (didnt look hard, composition seems fine)
- systemssh/telnet transport store channel args needed for authenticaiton (prompt pattern/ansi/return char) as private args now. they are used for initial auth then ignored...
- systemssh ssh args/open cmd improvements
- add keepalive for systemssh/telnet (network only)
- systemssh/telnet store _timeout_ops (channel timeout basically) as a private arg for same reasons as the auth stuff -- timeout authentication things, this is ignored after auth occurs
- systemssh improved pty authentication handling
- driver/driver (scrape) now doesnt store most arguments passed to it in the object itself -- they are instead stored in `_initialization_args` and passed to the channel and transport as needed
- way way way better repr for scrape
- significantly better netmiko compatability setup