mon/Paxos: set first_committed on first commit

Signed-off-by: Sage Weil <sage@inktank.com>
mon/Paxos: update first_committed only from paxos

Do not touch the in-memory first_committed until the trim commits.  This
avoids any possible confusion due to races and keeps commit() as similar
to store_state() as possible.

Similarly, do not touch first_committed from store_state.  We should
*only* pull it out of the kv store.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/Paxos: clean up removal of pre-conversion paxos states

Use a helper, independent of trim machinery, and call on leader, too.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/PaxosService: rename scrub and call from refresh()

Call at the earliest point where we know the paxos state beneath us is
consistent.  Make the name patch the one in Paxos.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/Paxos: simplify trim()

Collapse all the trim methods into a single simple method.

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