Lazy log message construction.

Found with some profiling that the calling Reference#toString() was being called a huge number of times, the source of the calls was logging.

This implementation will only end up calling the Reference#toString() in implementations of LinkLogger that use the toString()...e.g. FileLinkLogger.