extended _multiaddr_from_socket to support UDP and IPv6 automatically
changed TCPListener to use _ip4_or_6_from_multiaddr to get host, and not ip4 only
enforced `from error` everywhere with raises
added call braces to exceptions
- Add `close` and `disconnect` in `Host`
- Add `close` and `close_peer` in `Network`
- Change `IListener.close` to async, to await for server's closing
- Add factories for security transports, and modify `HostFactory`
* ignore kad
* fix swarm, and minor
* fix init and swarm
* ignore pb
* enable mypy
* fix basic host
* fix tcp
* fix mplex
* add typing for pb
* skip format pyi
* [mypy] no need to ignore pb now
* add typing to chat
* Add generic protocol handler
* Add generic protocol handler to stream muxing pipeline
* Modify conn_handler to only deal with connections
* mplex accept stream architecture changes
* Add create generic protocol handler
* Fix minor bugs
* who would win 4 devs or one not
* Debugging
* rearch with handle_incoming infinite loop, seems to work, needs cleanup"
* passing linting, still needs cleanup
* fixing linting again; code still needs cleanup
* fixing tests; code still needs cleanup
* adding test cleanup and task cleanup, removing prints
* linting, and cleanup complete
* storing connections based on peer id
* remove dead code
* remove unnecessary peer_id