Accept NSString and NSURL for NSLinkAttributeName

This crashed previously because it assumed `attr` to be an `NSURL`, when `NSAttributedString` accepts both NSString and NSURL as valid values for `NSLinkAttributeName`.