Unifying KV Cache Compression for Large Language Models with LeanKV