osd: disable agent when stats_invalid (post-split)

After a split the pg stats are approximate but not precisely correct.  Any
inaccuracy can be problematic for the agent because it determines the
level of effort and potentially full/blocking behavior based on that.

We could concievably do some estimation here that is "safe" in that we
don't commit to too much effort (or back off later if it isn't paying off)
and never block, but that is error-prone.

Instead, just disable the agent until a scrub makes the stats reliable
again.

We should document that a scrub after split is recommended (in any case)
and especially important on cache tiers, but there are currently *no*
user docs about PG splitting.

Fixes: #7975
Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: kickstart the agent if scrub stats become valid

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: dump agent state on pg query

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: warn if invalid stats prevent us from activating agent

Signed-off-by: Sage Weil <sage@inktank.com>
Merge pull request #1611 from ceph/wip-7975

osd: disable agent when stats_invalid (post-split)

Reviewed-by: Samuel Just <sam.just@inktank.com>