2.21.0 feature release

Deprecation notices

* Support is dropped for --icons auto. The only valid values are --icon yes|no, defaulting to --icons yes.
* Support for application type "native_no-prefix" is dropped.
* For game scripts targeting ./play.it ≥ 2.21, the main archives identifiers must start with "ARCHIVE_BASE". Game scripts targeting an older version can still use the prefix "ARCHIVE" instead.
* The following functions are deprecated, but still available through compatibility aliases:
  - context_specific_value
  - get_context_specific_value
  - package_get_current
* The following old functions are dropped, with no compatibility alias:
  - get_context_suffix_archive
  - get_context_suffix_package
  - context_specific_name
  - test_var
* Up to ./play.it 2.20, all of these content identifiers were tested when calling "content_inclusion_default" (or "prepare_package_layout" for older game scripts):
  - LIBS_xxx
  - LIBS0_xxx
  - (…)
  - LIBS9_xxx
  - GAME_xxx
  - GAME0_xxx
  - (…)
  - GAME9_xxx
  - DOC_xxx
  - DOC0_xxx
  - (…)
  - DOC9_xxx
  Starting with ./play.it 2.21, the search stops at the first unset numbered identifier. So if "GAME1_xxx" is not set, "GAME2_xxx" up to "GAME9_xxx" will be skipped.
  No legacy behaviour is provided for old game scripts.
* For WINE games, winecfg launchers are no longer generated.
  To spawn winecfg using the prefix for a given name, you can run the following command:
  WINEPREFIX=~/.cache/play.it/wine/${game_id} winecfg

New options

* --list-packages: List the packages that would be built from the given archive.
* --list-requirements: List the game script requirements for the given archive.

Improvements of file type detection based on MIME

* Exclude charset information from "file" output.
* Add support for "application/x-sharedlib" MIME type.
* Improve detection of PE32 executables.

Reworked context system

* The following commonly used variables now have context support:
  - APP_xxx_ID
  - APP_xxx_NAME
* New functions are provided:
  - context_value: Print the context-sensitive value for the given variable.
  - context_name: Print the name of the variable containing the context-specific value of the given variable.
  - context_archive: Print the identifier of the current archive.
  - context_package: Print the identifier of the current package.

Changes related to launchers

* Provide a new function printing the path to a launcher script: launcher_path.

Changes related to icons

* Rework "icons_list_all" to include implicit icons (like the ones from Unity3D or WINE games).

Changes specific to Mono games

* Dependencies on a list of Mono libraries can be declared with a new dedicated variable: PKG_xxx_DEPENDENCIES_MONO_LIBRARIES.

Changes specific to Gentoo

* Use PKG_xxx_DEPS_GENTOO with no transformation, allowing to pass more complex dependency constraints.

Other changes

* Provide new warnings and errors to be used when deprecated/obsolete functions are called:
  - warning_deprecated_function
  - error_obsolete_function
* If EXPANSION_NAME is set, it is automatically included in the output of game_name.