Optimizer refers to the algorithm used for finding the minimum of a function.
In this specific case the optimizer is referring to "geometry optimization" which seeks to find the local minimum of the potential energy surface. However, optimizers can also be used in other areas in DFT, for example, to optimize the wavefunction.
Below I will give a brief overview of the three optimizers that you listed:
CG stands for conjugate gradient, however before describing CG it's easier to first describe "steepest descent". In steepest descent you follow the negative of energy nuclear gradient ($-\displaystyle{dE/d\mathbf{x}}$) downhill to the minimum along that direction using a linesearch algorithm, and repeat this until reaching the local minimum. Because in each prior step you followed a direction to the minimum the subsequent step is by definition orthogonal (perpendicular) to the prior step, but is not orthogonal to a direction searched two steps ago (see figure).Therefore SD is inefficient near the minimum and sometimes oscillates near the solution
However, note that if the potential energy surface was perfectly circular, instead of elliptical the solution would happen in two steps (N steps for N dimensions). CG takes advantage of this observation by introducing the concept of "conjugate orthogonality" -- essentially it stretches the vectors to become orthogonal in some new space which is perfectly spherical therefore the solution can again happen in N steps. This however assumes that the PES is perfectly Harmonic and we know it's analytic quadratic form ($f(x) = 1/2x^TAx + bx +c$) -- which we do not! Therefore, we aren't guaranteed that all steps will be conjugate orthogonal to all other steps, or that the solution will converge in N steps.
In part 1 it was revealed that CG would converge in N steps if we knew the analytical form of the PES which we don't and this significantly reduces its performance. BFGS and L-BFGS are algorithms that introduce the concept of the local quadratic approximation $E(x) = E(x_0) + g^T\Delta X + 1/2\Delta x^T H_0\Delta X$
where $H_0$ is the Hessian ($d^2 E/dx^2)$. This is better because we can now gain a better picture of the PES by including local curvature information. However, the Hessian is an expensive quantity to calculate and is typically approximated. The BFGS and L-BFGS algorithms are methods to update this approximate Hessian so that it improves over time, therefore accelerating the optimization. The main difference is that L-BFGS is less memory intensive and should be used if the system is large.
See these references for more information on optimization
References:
An Introduction to the Conjugate Gradient Method Without the Agonizing Pain Edition 1/4 By Jonathan Richard Shewchuk
Schlegel, H. B. Geometry optimization. Wiley Interdiscip. Rev. Comput. Mol. Sci. 1, 790–809 (2011).