d-f-s: Add volume awareness
GitLab Runner uses volumes as build caches, particularly in order to reuse the Git repository and save re-cloning it. These volumes are 1:1 with containers: the runner looks up the last container which ran for that project using a predefined hash scheme, then reuses the volume from that container if available. Given that, we have no need to handle volume caching and expiration separately: as soon as the container referencing it is destroyed, the dangling volume is of no use to us. Hence we just zap any volume referenced by a container as soon as it's gone.