Make gossiper::convict() public so that it can be called from external
contexts (e.g. REST API handlers). Add co_await coroutine::switch_to()
at entry to ensure it always runs on the gossip scheduling group,
regardless of which scheduling group the caller is on.
This is needed because convict() accesses gossiper state that must be
manipulated on the gossip scheduling group.