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.
{
    // TODO: get the  from commandline.
    const auto receive_timeout = connection_parameters.timeouts.receive_timeout;
    constexpr size_t default_ = 1000000; /// in microseconds
    constexpr sival = 5000; /// in microseconds
    const size_t 
        = std::max(min_, std::min<size_t>(receive_timeout.totalMicroseconds(), default_));
    bool break_on_timeout = connection->getConnectionType() != IServerConnection::Type::LOCAL;
    std::exception_ptr local_format_error;
    while (true)
    {
        Stopwatch receive_watch(CLOCK_MONOTONIC_COARSE);
        while (true)
        {
            /// Has the Ctrl+C been pressed and thus the query should be cancelled?
            /// If this is the case, inform the server about it and receive the remaining packets
            /// to avoid losing sync.
            
            {
                if (QueryInterruptHandler::cancelled())
                {
                    cancelQuery();
                }
                else
                {
                    double elapsed = receive_watch.elapsedSeconds();
                    if (break_on_timeout && elapsed > receive_timeout.totalSeconds())
                    {
                        std::cout << "Timeout exceeded while receiving data from server."
                                    << " Waited for " << static_cast<size_t>(elapsed) << " seconds,"