Bucket index sharding for radosgw:

This patch implements the bucket index object sharding for radosgw, it adds a configuration to let user specify the number of shards for each bucket index object, and changes all related operations to make it work with multiple shards.

Testing:
1. Covered object PUT/DELETE, bucket CREATE/LISTING/REMOVAL.
2. Keep radosgw run a couple of hours making sure background thread works.
3. Test BI logs to make sure shard object id is part of the listing result so that we can do pre-fix listing.

Todo:
Make radosgw-agent to work with the new schema change for marker for bi log, this should be an easy change after we agree on the schema change brought by this patch.

Signed-off-by: Guang Yang (yguang@yahoo-inc.com)