MAINT: avoid redundant evaluation of user-provided function in l-bfgs-b optimization

closes https://github.com/scipy/scipy/issues/4076
I think it's easiest to not go changing `approx_fprime`.