Add DependencyEdge for products

The products now have their own DependencyEdge and are treated like
other dependency edges. That is, they are registered using the same
methods.