Download package builds when we write to versions file.
WIP: include programs' deps in an app's direct dependencies
Make constraint solver accept multiple constraints per package
Defer PackageSource import from project to avoid circular dep.
Fix typos and undefined things
Fix check for already-existing constraint
WIP: compute build ids and add to versions.

Utterly untested.
Merge plugin/slice watch sets before including in build id
serverPackageData can be null
Set officialBuild flags on 'publish' and 'publish-for-arch'
Fix checks before computing build id
Fix WatchSet.merge to actually merge files.

Not sure why this was commented out?
Remove outdated comment
Store and read build-time deps in unipackage buildinfo.json
Use build-time deps in `checkUpToDate`
Remove a couple completed XXXs
Remove `packageDirectoryForBuildInfo`.

We used to keep the `packageDirectoryForBuildInfo` of every package that
a package directly depends on in its buildinfo.json; if direct
dependencies change, then we might need to rebuild because they could
have registered or unregistered a plugin. Now we just keep the package
name and version (including build for our local packages) of our direct
dependencies.
Remove another XXX
Fix incorrect PackageLoader constructor arguments
Merge branch 'library-refactor-downloads' into library-refactor