Differentiable Optimal Control via Differential Dynamic Programming