map access is not threadsafe

Since map access is not atomic in Go, use the provided mutex to protect map and map
members.  See http://golang.org/doc/faq#atomic_maps for details.

Note: This also always deletes a service, as soon as the UUID matches.
Maybe we should traverse the full tree in order to find the UUID, when
the registry key is junk?