Factor out `getBuildIdentifier` and add option for relativizing paths
comment
Use source paths relative to packages dir in build ids
Add builtBy to build id
Another variant of cost function, prefer only updates to the root deps. Also prefer states with more choices made.
Clean up direct deps vs. plugin-providing direct deps.

Unipackage always has all direct deps now, but `checkUpToDate` and
`getBuildIdentifier` only consider the set of direct deps that provide
plugins.

Catalog versions now get updated during initialization, so after the
catalog is initialized, you can look up versions that include build ids.
A medium-sized test for sinatra+copybara (basic sinatra app with tests and stuff)
Fix the rails tests so now it is possible to resolve it
use test server for now
some hack on config to be able to talk to the test package server
merging in catalog speed up
Modify test app packages to include versions
read name in package.js
update the versions before running list
Tests work except for some newly-added timeouts around package loading and releases
adding warning message about package server
more test cleanup
Add a GitLabHQ-based benchmarky test for the constraint solver

At this point constraint solver can solve very shallow but averagely broad tests
(like sinatra + copybara + others) or very narrow but deep tests (rails).

This test is both deep and broad (the dependencies graph is huge) but it is also
a very unique case of a) mature packages ecosystem b) enourmous app (gitlabhq)

Further optimizations can be applied for this test.
Fix the giant benchmarky test for the constraint solver

Our constraint solver can solve it in 30s. Which is not that bad and might be
good enough for 6 month or maybe even longer. Ruby Bundler still takes up to a
minute to resolve this case and they have no cost function whatsoever.
removing test slices; renaming slices to builds