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

closes https://github.com/scipy/scipy/issues/4076
I did it like that because I knew there was some gotcha for `[]` as default value, but I guess this would not apply to args that are not mutable, so I'll change the default to `()`.