Add support for 0-based partition IDs

Initial goal is to allow user commands to specify partition IDs as short integers `[0, ring_size)` instead of hash values. May consolidate other features such as Yokozuna's logical partitions later.
Trying to figure out how this works - it appears that we should really be passing chash:ring_increment(PartitionCount) to the base case, not ring size. If the hash is divisible by ring_increment, it is a boundary. But there could (and are) many values that are divisible by ring_size, most of which aren't boundaries.