Make accept() throw more useful errors

The only reason libuv isn't returning this error is because we explicitly check on the julia side for the condition that would cause libuv to return this error. If we didn't have that `isopen(server)` check, this is the error that would be raised by libuv.

I guess we could just map this to a `SystemError` instead, which I would have done, except that I wanted to be consistent with the rest of our socket/IO code.  I guess we could just create an `IOError` type that holds the `UV_*` codes instead (which are really just `errno` codes anyway).