Refactored Links::link implementation to be able to deal with
several possible scenarios:
- file already linked (happy case)
- link to different file exists
- non link file exists
- broken symlink exists
- no file exists (happy case)
- generic failure
Also attempted to make the code more readable than previous attempt.
Admittedly, still needs some work.
Signed-off-by: Christina Sørensen <christina@cafkafk.com>