more refactoring of Range.hyperlink and added tests