Removing strange thing from `Link.setLinkVariable`

Color is never set as a link variable, because it falls into the curious
category of "turtle variables for links".
Separating out link-updating code
Separating each type of update into its own function, and being explicit

I think the old code was kind of crazy.  It was subtly difficult to
reason about, and it was stupidly difficult to refactor.  Also, the fact
that the code was relying on object members coincidentally having a
member of the expected name made it quite difficult to do refactoring of
agent classes.  Yeah, this form is verbose, but I'll take the verbosity
over enslavement to particular variable names.