Dns cache

The idea here is a basic DNS cache is put in front of dns.lookup.  It's reaped every 5m by default, but the time is configurable.