do not include strerror(0) in exception message
is_not_optional<> might be useful
optional<> needs emplace type
standardize include guards
omit needless "s."; use forwarded setsockopt
fds: cosmetic cleanups; consistent ctor patterns; forward fcntl() to socket interface
omit needless returns of void
do not assume address is AF_INET 0
address renovation: default family invalid (AF_UNSPEC).  dtrt for all cases when family is AF_UNSPEC.  check addr lengths.  use optional<>.
fix display of optional<addr>
fix display of agent_ip() again
types proc_clock_t and proc_time_t, so procnow() et al are more usable
clarify safe_lock<> a bit; forbid copying it
minimize string copying; add http_headers.contains(); make http_headers::find() private
http client lifetime: discard and optionally replace after fixed time