Contact-timing and Trajectory Optimization for 3D Jumping on Quadruped Robots