In a freshly cloned repo, submodule directories exist but are not
empty. Check if they are empty and update submodules. Previously,
submodules where only updated if their directories did not exist.
- Uses matrix so that build steps don't need to be defined multiple
times.
- Caches godot-cpp bindings, so they only need to be built when the
submodule version changes.
- Uploads build artifacts for linux 32/64-bit, windows 64-bit and macOS
64-bit.