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. 
Yes, it's fine to allocate this when calling ``bfgs``, but it's not okay to make this allocation when the user wants to use another algorithm. For ``optimize``, you can say ``bfgs_initial_invH=nothing`` and then just do something like:
```
if bfgs_initial_invH==nothing
    bfgs_initial_invH = eye(length(initial_x))
end
```
right before calling ``bfgs``. There could be slightly cleaner ways, but this should work.