This avoids having to hardcode profile targets in multiple places
and also fixes the confusing entry points into scripts both by
arguments and environment variables.
It also makes the setup script a lot more debuggable and scalable.
OS detection is a lot more robust, where it will try to use pip to
set up the distro python package, and if pip is missing try to install
it.
If OS detection fails now, a user can use --os on contrib/setup for
specifying it.
gi-docgen requires 3.3.3 or later, but some of the distro packages
are too old. Upgrade them to make the default
```
meson build
```
work out of the box