**Use case**
Some program left garbage in terminal.

**Describe the solution you'd like**
Subset of what `reset` command does.
/// Receive the block that serves as an example of the structure of table where data will be inserted.
    bool receiveSampleBlock(Block & out, ColumnsDescription & columns_description)
    
        while (true)
        
            Packet packet = n->receivePacket();
            switch (packet.type)
            
                case Protocol::Server::Data:
                    out = packet.block;
                    return true;
                case Protocol::Server::Exception:
                    onReceiveExceptionFromServer(std::move(packet.exception));
                    return false;
                case Protocol::Server::Log:
                    onLogData(packet.block);
                    break;
                case Protocol::Server::TableColumns:
                    columns_description = ColumnsDescription::parse(packet.multistring_message[1]);
                    return receiveSampleBlock(out, columns_description);
                default:
                    throw NetException("Unexpected packet from server (expected Data, Exception or Log, got "
                        + String(Protocol::Server::toString(packet.type)) + ")", ErrorCodes::UNEXPECTED_PACKET_FROM_SERVER);
            }
        }
    }
    /// Process Log packets, exit when receive Exception or EndOfStream
    bool receiveEndOfQuery()
    
        while (true)