Phase I - implement bucket index sharding for radosgw

This is the phase one implementation of the bucket index sharding strategy at radosgw, key changes include:

Static shard bucket index objects to a configured number of objects.
Listing / stats become more expensive due to the fact that it needs to talk to a couple of bucket index shards.
Everything should work as it did with the default configuration.

Testing:

Covered object PUT/DELETE, bucket CREATE/LISTING/REMOVAL.
Keep radosgw run a couple of hours making sure background thread works.
Todo:

Make radosgw-agent to work with the new schema change for marker for bi log.

Signed-off-by: Guang Yang (yguang@yahoo-inc.com)