These changes will use docker's new Dockerfile Arguments to
pass the Host User ID to the docker container at build time.
This allows the docker container to set it's internal user
to match that of the host. When using shared volumes between
the host and container, this prevents files created in the
container from being owned by root.
This will solve our problem of needing a cleanup step after
every ubuntu CI run.
These changes fix many of the issues blocking our Ubuntu CI Build.
Notably, it adds a postbuild step to the CI which cleans up file
permissions on files created in Docker. This lets the next job
delete those files successfully. It also accounts for docker instances
which are left running after an aborted job.