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. 
Ok I'll avoid the allocation, but what generality am I losing?  Would a more general (and mathematically precise) way to go forward be to require that the initial inverse Hessian be PSD?  In practice, I'm not sure how useful that would be, since the true dense Hessian at an arbitrary starting value is not going to be PSD.