rgw: bi log list/trim can get specific bucket shard

bucket shard can be specified on the bucket instance param. It can be
added like this: <bucket-instance>[:shard-id]

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: use new BucketShard structure for index manipulation calls

Instead of recalculating the hash every call, do it once, and pass this
structure around. Also, will be used for logging changes into the data
log.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: data changes log, log info by bucket shard id

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: improve bucket sharding hashing

Amplify small source changes.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: decode the req_state bucket instance id if needed

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: bucket_index_shard_hash_type fixes

add initializations, json encode /decode.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
cls_rgw: list bi log should not return marker entry

The marker should be served as a lower bound, but should not be
returned.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: bucket replica log, handle shard ids

bucket replica log can now save entries by the specified shard id

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>