See https://github.com/deeplook/sparklines

**Describe the solution you'd like**
```
sparkbar(width)(x, y)
sparkbar(width, min_x, max_x)(x, y)

▁▂▅▆▇▆▅
```

An aggregate function calculates a histogram of `y` by `x` and then reshapes it to `width` buckets if the histogram is larger.
Linear weighted average is used for reshaping. If multiple values correspond to a single bucket, they are also averaged.
The function returns a string.

The height of bar is proportional to the difference between `y` and the minimum value of `y` on the observed data (and then rounded to the nearest neighbor for rendering). The value of `y` can be negative but the bar height is always non negative. There are 8 different heights that can be rendered plus one additional character - whitespace that is used for absense of the value.

The boundaries for x and y can be calculated automatically or provided in parameters.

**Further info**

Similar function can use ANSI escape sequences for 24-bit color to render heatmaps.

We can encode server's memory usage during query processing directly inside the famous progress bar in clickhouse-client.
registerAggregateFunctionCount(factory);
        registerAggregateFunctionDeltaSum(factory);
        registerAggregateFunctionDeltaSumTimestamp(factory);
        registerAggregateFunctionGroupArray(factory);
        registerAggregateFunctionGroupUniqArray(factory);
        registerAggregateFunctionGroupArrayInsertAt(factory);
        registerAggregateFunctionsQuantile(factory);
        registerAggregateFunctionsSequenceMatch(factory);
        registerAggregateFunctionWindowFunnel(factory);
        registerAggregateFunctionRate(factory);
        registerAggregateFunctionsMin(factory);
        registerAggregateFunctionsMax(factory);
        registerAggregateFunctionsAny(factory);
        registerAggregateFunctionsStatisticsStable(factory);
        registerAggregateFunctionsStatisticsSimple(factory);
        registerAggregateFunctionSum(factory);
        registerAggregateFunctionSumCount(factory);
        registerAggregateFunctionSumMap(factory);
        registerAggregateFunctionsUniq(factory);
        registerAggregateFunctionUniqCombined(factory);
        registerAggregateFunctionUniqUpTo(factory);
        registerAggregateFunctionTopK(factory);
        registerAggregateFunctionsBitwise(factory);
#if !defined(ARCADIA_BUILD)
        registerAggregateFunctionsBitmap(factory);
#endif
        registerAggregateFunctionsMaxIntersections(factory);
        registerAggregateFunctionHistogram(factory);
        registerAggregateFunctionRetention(factory);
        registerAggregateFunctionMLMethod(factory);