Abstract over dependency kind in Compile.scala
Remove `DependencyContext` object in favor of enum