Make uv's async handle clone-able

This in theory allows for future optimizations where exactly one async handle
per scheduler can be made (instead of one per I/O instance).
Assorted test fixes and merge conflicts