clarify organization of shared_pool:
  change static members of pool to non-static members of impl
  remove unnecessary locking around most shared_ptr<> usage
  use more C++11
fix using in previous patch
start implementing preconnect with a basic replacement feature
clarify safe_lock<> a bit; forbid copying it
refactor shared_pool; restore thread safety; merge destroy and release; add scoped_resource move and operator *
is_not_optional<> might be useful
fds: cosmetic cleanups; consistent ctor patterns; forward fcntl() to socket interface
minimize string copying; add http_headers.contains(); make http_headers::find() private
do not assume address is AF_INET 0
optional<> needs emplace type
omit needless returns of void
omit needless "s."; use forwarded setsockopt
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