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, understood.  However, now I am confused about how to do this without allocating when its not needed?  Already, if you do a call to bfgs() with no pre-specified initial_invH, bfgs will default to generating a dense identity matrix of the appropriate size.  Is the concern that now a call to optimize() for a non-bfgs optimization method allocates a needless identity matrix?  Is there a way to get around this?  I'm still pretty new to Julia so its not obvious for me.