Add attributes to `std.socket`

`std.socket` now has `@safe` public API.

Also added few fixes.
> Nop. It just hard and unpleasant to argue things you consider too obvious to even talk about.

Surely you realize how condescending that is?

> The only rule I see in Phobos is a formatting one. Otherwise the code-base leaves much to be desired.

It's not just that there is no such rule, but Phobos as-is doesn't apply `in` everywhere as you suggest it should, even though `in` has been around for years and Phobos has dozens of developers. It's *clearly* not "too obvious to talk about". It's the burden of the pull requester to argue that their patch is worthwhile. Hand-waving away counter-arguments is a good way to make your pull request bit rot for years.

Back to `in`;

> And IMHO the reality is `in` was added with a desire it should be on every argument.

`in` has existed for years and yet new Phobos additions do not follow this convention. If you want this convention to take hold, you'll need a more meaty argument than "IMHO".

Mindlessly applying `in` to everywhere possible is not meaningful. For the types applied to in this PR: it does not tell the programmer anything. It does not help the optimizer. When it comes to forward-compatibility it's more of a disadvantage than an advantage (as I showed earlier). Further, if we're going to apply this to existing code as is done in this PR, it sets us on a path of ABI breakage due to different mangling.

What advantage are you proposing that is more important than the above disadvantages?