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

closes https://github.com/scipy/scipy/issues/4076
I'd rather not... if `*args` means 'user-supplied args to the user-supplied callback functions' then shouldn't `**kwargs` mean 'user-supplied kwargs to the user-supplied callback functions'?  Of course as I mentioned I'd rather just get rid of user-supplied args altogether and make them use `functools.partial` or some other callable instead, but this is not realistic.