Use docker buildx for multiarch builds
This PR switches to the docker buildx command for building images for multiple CPU architectures. Currently, the build jobs are set up to build linux/amd64 and linux/arm64. This is set in the Makefile. Because building a Docker image for a non-native CPU architecture is very slow (because it's emulated), mutiarch builds are not the default when running make docker. Instead a new command, make docker-multiarch has been added, which is used by our GitHub Actions.
NOTE: From my testing
docker buildxseems to return status 0, despite the fact that it may have failed to push to a repository. This can result in false positives for our GitHub Actions. I looked into this and it seems to be an open issue withbuildxhttps://github.com/docker/buildx/issues/732