Successive Convexification: A Superlinearly Convergent Algorithm for Non-convex Optimal Control Problems