fix: Preserve old data appropriately (#9873)
fix: Preserve old data appropriately (#9873)

This PR fixes all the below scenarios
and handles them correctly.

- existing data/bucket is replaced with
  new content, no versioning enabled old
  structure vanishes.

- existing data/bucket - enable versioning
  before uploading any data, once versioning
  enabled upload new content, old content
  is preserved.

- suspend versioning on the bucket again, now
  upload content again the old content is purged
  since that is the default "null" version.

Additionally sync data after xl.json -> xl.meta
rename(), to avoid any surprises if there is a
crash during this rename operation.
aead/minio,minio/minio,aead/minio,krisis/minio,NitishT/minio,balamurugana/minio,aead/minio,aead/minio,donatello/minio,vadmeste/minio,NitishT/minio,aead/minio,donatello/minio,NitishT/minio,krisis/minio,aead/minio,minio/minio,balamurugana/minio,aead/minio,aead/minio,vadmeste/minio,NitishT/minio