interceptor: Use a plain map for domains, instead of a sync.Map
interceptor: Use a plain map for domains, instead of a sync.Map

The docs for sync.Map say:

> The Map type is specialized. Most code should use a plain Go map instead,
> with separate locking or coordination, for better type safety …

So when when should we use it?  The docs go on to say:

> The Map type is optimized for two common use cases: (1) when the entry for a
> given key is only ever written once but read many times, as in caches that
> only grow,

That's not us; we both add to and remove from the map ever time we call
.update().

>            or (2) when multiple goroutines read, write, and overwrite
> entries for disjoint sets of keys.

That's not us either; .Resolve() reads the same set of keys that .update()
writes.

Since neither of those 2 cases fit us; switch to a plain Go map, and an
RWMutex.

datawire/ambassador,datawire/ambassador,datawire/ambassador,datawire/telepresence,datawire/ambassador,datawire/ambassador,datawire/telepresence,datawire/telepresence