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.
re: point 3 in my comment above, on what hashes are passed to `hash_to_partition_id`, I suppose one downside of taking any hash is that `partition_id_to_hash` is no longer an inverse *shrug*.