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.
``Union(Matrix,Nothing)`` doesn't seem much cleaner. I think it's okay to just remove the type annotation.