osd: EC optimizations: add shard_versions to object_info_t
EC optimized pools do not always update every shard for every write I/O,
this includes not updating the object_info_t (OI attribute). This means
different shards can have OI indicaiting the object is at different
versions. When an I/O updates a subset of the shards, the OI for the
updated shards will record the old version number for the unmodified
shards in the shard_versions map. The latest OI therefore has a record
of the expected version number for all the shards which can be used to
work out what needs to be backfilled.
An empty shard_versions map imples that the OI attribute should be the
same on all shards.
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>