Adjoint Methods For Stellarator Shape Optimization And Sensitivity Analysis