mon: rev the internal mon protocol

This captures the new sync.

Signed-off-by: Sage Weil <sage@inktank.com>
mon: factor out sync_clear_store_state() helper

Signed-off-by: Sage Weil <sage@inktank.com>
mon: only clear in_sync flag on mon start; do not discard other state

There is other important stuff here, like the monmap.  Don't throw it
away!

Signed-off-by: Sage Weil <sage@inktank.com>
mon: drop single-use is_sync_on_going() check

Signed-off-by: Sage Weil <sage@inktank.com>
mon: preserve last_committed_floor across sync

Add a paranoid check to prevent us from forgetting how far ahead our
last_committed was when we sync.  This prevents an i'll-timed sync
from allowing paxos to warp back in time.

See: #5256
Signed-off-by: Sage Weil <sage@inktank.com>
mon: dump sync txns at debug mon >= 30

Signed-off-by: Sage Weil <sage@inktank.com>
mon: add 'mon sync inject get chunk delay'

Make sync go slower to shake out bugs.

Signed-off-by: Sage Weil <sage@inktank.com>
mon: abort a sync if they fall behind paxos trimming

If we get a GET_CHUNK request but paxos has trimmed past us, fail the sync
and let the peer retry.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/PGMonitor: cleanup: use const strings for pgmap prefixes

Signed-off-by: Sage Weil <sage@inktank.com>