* Rename artifactsRepo -> buildDataDir to be more explicit about the fact that
it holds more than just the artifacts.
* Revert removal of run ids.
* Move Worker definition into core as part of making the core responsible for
accepting run requests.
* Make the core module more responsible for internal details of data structure
and storage. External callers should not need to construct paths to
artifacts, versions, etc. but should be able to call method in the core
module to do this work for them.
* The working directory no longer contains anything but the checked-out code.
All StrawBoss-specific data is stored by StrawBoss elsewhere.
* Add a regular maintenance cycle to the server module.
StarBoss is meant for building things checked into the repo It is also designed
around repeatable builds. So it makes the assumption that running a build step
for a specific version of a project will always result in the same output. So
runs are identified by the project, build step, and version.