Edges describe relationships between tasks. Often, this is a dependency
between packages, requiring that some package be installed before a latter
task can be executed.
tools::package_dependencies() is used to calculate these relationships.
However, the package data returned by utils::available.packages(),
that is used internally to determine dependencies does not know about
local or remote packages, so those are first appended to this data set
prior to calculating edges. The bulk of this function serves to join this
data.