DiffHair: Inverse Hair Optimization using Differentiable XPBD Simulation