zb,internal: Clean up handshake code
- Make it all async/await-based directly, rather than through a low-level implementation.
- Port the blocking code reading cookies into non-blocking async code. This unfortunately meant adding dep on
async-fs
but only forasync-io
backend and it doesn't enable new transient deps. - other cleanups/refactoring.