Rename junction `target` option to `link`
As per a recent discussion on IRC, the target option name is confusing as by itself, it suggests the opposite of what it actually means.
Since the name target was selected as a parallel with the target of a symbolic link, change this name to link to better reflect that we are linking two junctions.
This branch also improves error checking and documentation around junctions.