They can't compile the new constexpr decomposer because
`ITransientExpression` has a defaulted virtual destructor. We could
instead drop the virtual destructor - it only exists to silence
static analysis tools complaining about having virtual functions
without virtual destructor - but GCC 5 and 6 are positively ancient,
so we drop them instead.
The base images for GitHub Actions are updated weekly, but
sometimes that is not enough to be able to install the packages
we require. The recommended fix for this is to always run
`apt-get update` before `apt-get install`.
* Fixed problem with older compilers by explicitly installing the
right compiler version.
* Split apart simple builds that can be well described by a build
matrix, and builds that need special CMake defines or similar
special snowflake handling.
* Ported some extras + examples builds from TravisCI to GitHub
Actions.