mon/OSDMonitor: don't change in-memory state on prune
We were modifying the in-memory state when running through several
osdmap pruning functions.
Should the transaction we're encoding not be committed, we may end up in
a state where we have a stale in-memory state that does not match what
is on disk; including having in-memory state while not having on-disk
state.
We prevent this sort of inconsistency by working on temporary states
instead.
Fixes: http://tracker.ceph.com/issues/24612 Signed-off-by: Joao Eduardo Luis <joao@suse.de>