unix: guarantee write queue cb execution order in streams

The problem is that currently the canceled write callbacks
are being called before the already written callbacks, even
though they were queued after them.
This is not right. Calling uv_run again while it's running is not supported, even if it works in some corner cases. It's a can of worms.