Test sending an update after reconnecting

* Add `make test-gomc` for testing with the libmemcached adapter.
* Ensure `GomemcStore#fetchKey()` returns an empty record if the channel does not exist. This fixes a nil pointer exception thrown by `#Update()`.
* Add hooks for overriding duplicate client checks via `setReplaceEnabled()` and `replaceEnabled()`.
It does disconnect the prior worker, though the flow is tricky—`Server().HandleCommand()` calls `Server().Bye()`, which closes the socket and removes it from the map. I did it this way because I wanted `Bye()` to be called from the Goroutine associated with the new worker.

Calling `client.Close()` instead of `HandleCommand()` will also eventually call `Bye()`, but from the Goroutine associated with the prior worker. I saw an interesting race where the new worker was added to the map before the old one was removed—effectively replacing it. Then, when the server cleaned up after the prior worker, it would delete the new worker from the map.