Fix #3030.

Previously, table configuration stored server references as names.
Now they are stored as UUIDs. The format presented to the user is
the same. But now, if the user renames a server, all of the table
configs will appear to "update" to reflect the new name, and if the
user declares a server dead, it will disappear from all of the
table configs.
Add back in guarantee that each shard's director is set exactly once.