BiDoRA: Bi-level Optimization-Based Weight-Decomposed Low-Rank Adaptation