[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.
[General] More const correctness.
[API] More sanity checks in Client.
[Gateway] Thread-safe Adhoc Gateway.
Merge pull request #139 from cocaine/ketama-routing

[Locator] Consistent routing.