BLUR: A Bi-Level Optimization Approach for LLM Unlearning