handle_osd_map and the PGs use different sequencers when writing
their updates. We therefore need to make sure new osdmaps are
committed to disk before we expose them to PGs, lest they update
their info to reference a new osdmap that hasn't actually
committed yet.
This doesn't happen with FileStore because transactions are
ordered when they are queued, but it does affect BlueStore.
Fix by splitting handle_osd_map into two phases, one that just
persists stuff, and the second half that publishes the new maps to
the rest of the OSD.
Fixes: #15073 Signed-off-by: Sage Weil <sage@redhat.com>