Adds symlink alternative to link_file_in_workspace().
If "link()" fails due to a permissions or cross-device error, we will now try to symlink the file instead.
This is a partial fix for issue #140