os/bluestore: version shard and spanning blob buffers, not each blob
Instead of versioning every blob encoding, and adding a full byte
per blob, instead version the entire shard or spanning blob
chunk, since they are always encoded together.
We overload the 'features' argument here to pass through a
struct_v. This is slightly abusing an argument that is normally
used for feature bits, but only slightly.