[Locator] Consistent Ketama routing.

Replaced the old routing algorithm with Ketama consistent hashing one, like in Memcached. This way,
the client could provide an optional `key` argument to Locator::Resolve in order to achieve sticky
behavior, i.e. same `key` will always end up with the same version of a service, given that service
weights are not changed.
[Locator] Dropped Snapshot ID dead code.
[Cluster] Validate remote Node IDs.