osd/: add initial PGBackend recovery interfaces and stubs

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: move the temp collection into PGBackend

Other, future uses of the temp collection will need
to come up with their own temp collections.

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/: allow dout for ReplicatedBackend methods to work in ReplicatedPG.cc

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: fill in on_local_recovery

PGBackend::Listener::on_local_recovery will be called with the
transaction completing the local recovery of an object.  This should
leave the remaining code in submit_push_* and friends able to be
moved into ReplicatedBackend.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedBackend: fill in on_local_recover_start

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: fill in on_peer_recover and on_global_recover

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG,ReplicatedBackend: move message handlers

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG,ReplicatedBackend: move over recovery message handlers

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend: add is_primary, clear_state, dump_recovery_info

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG,ReplicatedBackend: move the push/pull message handling

Signed-off-by: Samuel Just <sam.just@inktank.com>
working