CPU usage is misreported.

Currently "0 CPU" means "no CPU metric received in the previous ProfileEvents packet". But there can be many ProfileEvents packets and only a few with CPU increment.

That's why the CPU metric shows something weird like:
```
0
0
0
0
0
1234
0
0
0
...
```

This is unbearable, and the CPU metric should be either fixed or removed altogether.
return true;
        case Protocol::Server::ProfileInfo:
            onProfileInfo(packet.profile_info);
            return true;
        case Protocol::Server::Totals:
            if (!cancelled_)
                onTotals(packet.block, parsed_query);
            return true;
        case Protocol::Server::Extremes:
            if (!cancelled_)
                onExtremes(packet.block, parsed_query);
            return true;
        case Protocol::Server::Exception:
            onReceiveExceptionFromServer(std::move(packet.exception));
            return false;
        case Protocol::Server::Log:
            onLogData(packet.block);
            return true;
        case Protocol::Server::EndOfStream:
            onEndOfStream();
            return false;
        case Protocol::Server::ProfileEvents:
            onProfileEvents(packet.block);
            return true;
        default:
            throw Exception(
                ErrorCodes::UNKNOWN_PACKET_FROM_SERVER, "Unknown packet {} from server {}", packet.type, connection->getDescription());
    }
}
void ClientBase::onProgress(const Progress & value)