added optional initial bfgs inverse hessian

This is my first attempt at a pull-request - a really simple additional option for the BFGS method to accept an initial inverse hessian.  I need this feature for a problem in which the standard identity matrix generates errors in the line search routine. 
Since this is an advanced feature, I think it's okay to require the provided Hessian to be PSD. One can always add a perturbation on the diagonal to force PSD. At some later point we could try to do this automatically.