Abstraction for dependencies of multiple package types begun

- At this point, no functionality has changed, but the backend is
  more general. From this point, adding ABS packages as a dep type
  is trivial.