revised user-specified initial inverse Hessian Code

This is exactly the code discussed in the previous PR, but built off the most recent master branch.
I can remove the type annotation, but is that bad form?  Would 

bfgs_initial_invH::Union(Matrix,Nothing) = nothing

do the trick?