Chase all sorts of bugs around

Summary of issues addressed

  o  Connection errors are now handled in a semi-sane fashion. The
     old way of handling errors was prone to heap corruption and other
     such scariness.

  o  DNS timeouts are cached for 60 seconds (use 127.0.0.1 for DNS for
     the time being)

  o  abort() on map deletion attempts while traversing a map. I haven't
     yet tried to work out what would happen if a mapping is deleted
     during traversal, so I'll just abort() and work around them. My
     gut tells me it's bad.

  o  Logging tweaks