Update to the latest libuv

At this time, also point the libuv submodule to the official repo instead of my
own off to the side.

cc #10246
Closes #10329
Another round of test fixes from previous commits
Carefully destroy channels at the right time.

When a channel is destroyed, it may attempt scheduler operations which could
move a task off of it's I/O scheduler. This is obviously a bad interaction, and
some finesse is required to make it work (making destructors run at the right
time).

Closes #10375
Fix usage of libuv for windows