DNS Lookup Caching

Fixes #29.
What protects the proposed map[string]*sync.RWMutex{} when it needs to read/written? ;o