SOC_U: Implemented some socket functions

This allows ftbrony and ftpony to work.
It's using Berkeley sockets directly since that's what the soc:U service exposes to applications.
Standard explicitly allows two structs in a union that have a matching prefix to allow access to that prefix no matter the "branch" that was used to set it, so that part has to work. As far as I know intra-struct padding is left to the implementation, so no guarantees there, but all platforms we care about are sane, so this is fine. (As in, if it supports `#pragma pack` then it supports this.)