Add fallbacks to request_info for non-IP scenarios

The current request_info code assumes the request is bound to an IP
address and port. It is possible to have servers listening on named
pipes or other connection mechanisms (e.g, when running under
`iisnode`), where the connection object does not exist.

We add some sane fallbacks for this scenario to fix some crashes and
provide as much data as is available.

Fixes #26