Add application icon
core: add infrastructure for downloading and maintaining resource files

A singleton class DownloadManager has been added, that is responsible
for

  - downloading/updating Qt .rcc files for localized voices data,
  - maintaining the rcc-files locally and
  - registering the downloaded resources

It downloads from a fixed upstream http-URL to the default local
writable location. Downloads are based on common relative rcc-paths
such that a URL of the form

http://<server-base>/<path/to/my/resource.rcc>

will be downloaded to a local path

/<QStandardPaths::writableLocation(QStandardPaths::DataLocation)>/<path/to/my/resource.rcc>

and registered with a resource root path

qrc:/<path/to/my>/

Downloading and verification of local files is controlled by MD5
checksums that are expected to be stored in "Contents" files in each
upstream directory according to the syntax produced by the md5sum
tool. The checksums are used for checking whether a local rcc file is
up-to-date (to avoid unnecesary rcc downloads) and to verify that the
transfer was complete. Only valid rcc files (with correct checksums)
are registered.

The DownloadManager class has been designed flexible enough to also
account for downloading other types of rcc files (like activity-rcc
files, data rcc files, translations, etc.)

For now the class supports (at least) the following two use cases:

1. User changes locale -> upon confirmation voices rcc files for the
new locale are downloaded.

2. Program starts up -> If not prohibited by the settings check for
updates of the voices rcc file for the current locale and register it.

The added generator script (tools/generate_voices_rcc.sh) can be used
to generate voices-$LOCALE.rcc files for the upstream location.

TBD: A setting like "automaticDownloadsEnabled" should allow for
controlling whether the application may automatically download
resource updates without user confirmation. This is meant as a mean to
prohibit downloads with mobile internet connections.
core: ApplicationInfo: adjust audioFilePath generation to DownloadManager
core: adjust GCAudio to ApplicationSettings and add stop() method

stop() is (at least) needed by click_on_letter
click_on_letter: adjust audio handling to DownloadManager resources
core: Settings: ask for downloading new voices files after locale was
changed

Used standard MessageDialogs for that. Maybe a custom element would be
better because:

- Android does not seem to allow dynamic changes to the MessageDialog
contents which would be needed for download progress visualization.
Therefore not implemented yet.

- We needed to workaround the onYes handler being called twice (bug
core: DownloadManager: add config option enableAutomaticDownloads

... to allow the user to control whether the application may
download/update sound files automatically without user confirmation.
Defaults to false on mobile platforms, to true otherwise.
core: settings: fix default handling

Activating complete default settings if only one single is not set is
wrong in 2 ways because it

  - fails to initialize a newly added setting with its correct
    default and
  - overwrites existing settings if the one checked for is missing
    from the config file.

Therefore at startup only initialize settings from config with
fallback to default and at shutdown make sure all currently activated
settings are wrote back to the config file.
core: DownloadManager: add setting downloadServerUrl to new admin group

This adds an [Admin] group to the settings supposed to hold
admin-settings, which should not be shown in the normal user config
dialog and only be editable in the config file.

The new downloadServerUrl can be used to change the upstream http
location for rcc downloads. It must point to a location with the
directory structure expected by the DownloadManager. For now only
<downloadServerUrl>data/voices/
The setting defaults to
http://gcompris.net
Merge branch 'developers-master-rcc-download'