Change InstallPlan.done and .next into .ready that returns a list
So kind of like uncons style rather than null and head. It returns all the ready ones by lazily so it's no extra expense. It'll allow parallel installations since all ready packages are independent of each other. Also update callers.