rpc/compressor/lz4: use reusable buffers for large allocations
rpc/compressor/lz4: use reusable buffers for large allocations

LZ4 compressor requires input and output buffers to be contiguous. If
they are not they need to be linearised which may cause large memory
allocations for each sent and received message.

This patch changes the compression logic to reuse preallocated buffers
to store input and output of the actual compression and decompression
routines. The cost is additional copy of the output data and it is still
possible that calls to lz4 functions will take unacceptably long time,
but the pressure on the memory allocator is going to be lower.

avikivity/seastar,cloudius-systems/seastar,scylladb/seastar,dreamsxin/seastar,dreamsxin/seastar,cloudius-systems/seastar,syuu1228/seastar,syuu1228/seastar,scylladb/seastar,scylladb/seastar,syuu1228/seastar,cloudius-systems/seastar,avikivity/seastar,dreamsxin/seastar,avikivity/seastar