UniErase: Towards Balanced and Precise Unlearning in Language Models