## Improved support for static libraries

Static libraries had numerous shortcomings in the past, especially when using
uninstalled static libraries. This release brings many internal changes in the
way they are handled, including:

- `link_whole:` of static libraries. In the example below, lib2 used to miss
  symbols from lib1 and was unusable.
```meson
lib1 = static_library(sources)
lib2 = static_library(other_sources, link_whole : lib1, install : true)
```
- `link_with:` of a static library with an uninstalled static library. In the
example below, lib2 now implicitly promote `link_with:` to `link_whole:` because
the installed lib2 would oterhwise be unusable.
```meson
lib1 = static_library(sources, install : false)
lib2 = static_library(sources, link_with : lib1, install : true)
```
- pkg-config generator do not include uninstalled static libraries. In the example
  below, the generated `.pc` file used to be unusable because it contained
  `Libs.private: -llib1` and `lib1.a` is not installed. `lib1` is now ommitted
  from the `.pc` file because the `link_with:` has been promoted to
  `link_whole:` (see above) and thus lib1 is not needed to use lib2.
```meson
lib1 = static_library(sources, install : false)
lib2 = both_libraries(sources, link_with : lib1, install : true)
pkg.generate(lib2)
```

Many projects have been using `extract_all_objects()` to work around those issues,
and hopefully those hacks could now be removed. Since this is a pretty large
change, please double check if your static libraries behave correctly, and
report any regression.

Add release snippet for the rework of static libraries
doc: Add release snippet for the rework of static libraries
