Switch to using upstream prebuilt binaries for snap package
This is a major (major major MAJOR) change in the package design which
carries 3 major benefits:
* it GREATLY simplifies the snap package design itself, taking
advantage of the existing release packages that are designed
for cross-distro, multi-arch support and reducing snap build
times from hours to seconds
* it allows us to support ARM64 as an install target
* it precisely matches functionality between upstream releases
and the snap package
There are however also some major costs:
* it removes our ability to support i386 install targets, as
upstream does not supply i386 builds
* it assumes that the upstream build settings will match the
needs of the snap package
If this approach is too heavy-handed then it might be possible to make a
compromise such as downloading only prebuilt LLVM and still building the
actual compiler and tool executables.
There seems to be no reason to check out the full git history here and
setting `source-depth: 1` for all git-sourced parts will both speed up
builds and reduce the volume of unnecessary data downloads.
DMD 2.088.x introduced a nasty bug where the expected year in compiler
test output was hardcoded. DMD 2.090.x "fixed" this by updating the
hardcoded year from 2019 to 2020. This patch correspondingly tweaks our
own workaround introduced in d80460670e77175ae0e42ec578b1727726b313db,
which should be possible to remove with LDC 1.21+ (the upstream bug was
fixed properly in DMD 2.091.x).
`ldc2.conf` has been updated to bring it in line with the upstream LDC
build, adding a separate section for 32-bit config and dropping the now
unneeded `--no-warn-mismatch`.
There is no need for this to be a standalone part, as all it does is to
install a couple of build-packages. These can be moved to `ldc`, which
is the only real user, and highlighted as being ctest requirements.
Update ldc2.conf to better match upstream 1.18.0 binary package
This brings the config file in line with upstream standards. It should
be backwards compatible, while adding support for some extra settings,
such as WebAssembly builds.
The only differences from upstream are the import paths, which are set
to `include/d` instead of `import` (accepting the default install path
of the build system), and the library paths, which are set to `lib64`
and `lib32` instead of `lib` and `lib32` (making the paths consistent
for both amd64 and i386 package builds).