Revamp to avoid PackageRepo depend in Package.

This makes Package/Module more usable outside of the package manager, for
example in the in-development scaled-project package which will learn Scaled
Project Services about Scaled packages.