Make accept() throw more useful errors

This calls into question what `uv_error` really means. After all, this error is not returned by libuv. I also generally dislike classifying errors according to which library threw them, but that's not specific to this PR of course.