[TASK] Add unified PackageManagerInterface

Instead of distinguishing between Flow and Irregular packages, this commit
makes all of the PackageManager's use the same PackageManagerInterface.
The logic to switch to a PackageManager other than Flow's is incomplete.