1. Use the official Rust nightly docker image as base
2. Remove hardcoded user
3. Use named volumes to cache .rustup and .cargo toolchain folders
- Changing file permissions to user (chown) only needed on first launch
4. Cleanup apt folders after installing
5. Make bash the default fallback command
6. README.md: Unify workflows for Linux and MacOS
On MacOS, while building the container, `useradd` returns with code 4 (UID already in use), even with option -o. On this platform, the access rights for a volume attached to the container are translated to the container's user and group. So, there is no need to handle UID and GID compliance like we do on Linux. See this for reference: https://docs.docker.com/docker-for-mac/osxfs/
This modification allows not specifying the UID and GID while building the container, keeping the defaults for `useradd`.
Use the same command as the Cookbook README for Redox OS APT key retrieval.
Keep adding the Redox OS repository in a dedicated file. This allows updating it specifically without updating the other repositories one more time.
Prepare user environment at build time and update user and group id at runtime if necessary.
Update submodule sync step to avoid a dependency on cargo
Run `make update all` instead of just `make all`. The target `update` didn't update the container environment since it was executed on the host.