PG: do not put() in scrub() if pg is deleting

scrub() no longer handles the put, this call
must have been missed.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: use PGRef in C_PG_ActivateCommitted

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: use PGRef for C_PG_FinishRecovery

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: use PGRef for FlushState

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: add ReplicatedPGRef

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: use ReplicatedPGRef for C_OSD_OpApplied

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: use ReplicatedPGRef for C_OSD_OpCommit

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: use ReplicatedPGRef for C_PG_MarkUnfoundLost

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: use the ReplicatedPGRef typedef

Signed-off-by: Samuel Just <sam.just@inktank.com>
OSD: add debugging to shutdown to catch stray PGs

Signed-off-by: Samuel Just <sam.just@inktank.com>
more debugging
try without the assert
hackety-hack-hack for tracking live pgids after all pgs should be dead
track ALL OF THE PG REFS
working
allow normal get/put to be tagged
template PGRef wrapper
modify for debugging
dump tag counts
RepModify tag