KVShare: Semantic-Aware Key-Value Cache Sharing for Efficient Large Language Model Inference