os/bluestore: Add missing punch_hole call so that object offsets are updated.
Rearranged an HM-SMR related code in _do_write_small so that it reuses
previously calculated offsets and, most importantly, added the missing
onode->extent_map.punch_hole call that releases overwritten blobs and updates
the location of the object to point to the latest copy. Without it the OSD
could not restart becase a stale copy of osd_superblock object was being read.