Successive Convexification of Non-convex Optimal Control Problems: Theory and Applications