Add attributes to `std.socket`

`std.socket` now has `@safe` public API.

Also added few fixes.
I presume only `FD_ISSET` call is system here? Can you put rest of the code out of trusted lambda? It will be slightly more verbose but minimizing amount trusted code is more important IMHO.