click_on_letter, display the letter if the sound is not found

Added the error signal in GCAudio to let the caller catch it.
click on letter, play the voice letter in sync

Now we trig the play of the voice letter after the completion of the
message 'click on letter'. Before there was a fixed 1500ms but the
message is of variable length depending on the locale.

Extended GCAudio with the signals Error and Done.
build, fixed android build

Remains an issue in compiling copyQtAndroidData
build android, added an env variable to get the host Qt5 qmake

Now you must add a variable like this to your .bashrc:
export Qt5Host=gcc_64
export Qt5_HOST_DIR=~/Qt5.3.0/5.3/$Qt5Host
core: DownloadManager: remove incomplete files after failed downloads

Otherwise the haveLocalResource() call might report existence of
unusable files.
core: improve DownloadManager interface for use by the QML layer

- Expose abortDownloads() to make it available to the QML layer.
  To avoid deadlocks upon aborting replies the downloadFinished()
  signal  must be disconnected first. Therefore we now connect to
  individual QNetworkReply::finished() signals instead of the
  corresponding signal of QNetworkManager.

- Expose new downloadIsRunning() method.

- Expose new downloadStarted(...) signal.

- error() signal: add QNetworkReply::NetworkError as first parameter

- downloadFinished() signal: add return code (DownloadFinishedCode)
  as parameter to distinguish Success from Error from NoChange
core: add DownloadDialog type and dialog helper functions in core.js

Popup dialogs like message boxes and friends have a dynamic nature that
does not fit well with the static QML definitions. Therefore helper
functions for showing/hiding such dialogs dynamically have been added
to core.js. Thus a dialog element does not need to be declared in QML:

1. showMessageDialog(parent, title, text, informativeText, icon,
buttonHandler) instantiates a Messagedialog object dynamically as child
of the  passed parent object.

2. showDownloadDialog(parent, properties) instantiates a DownloadDialog
object dynamically.

The DownloadDialog type visualizes download-progress of the
DownloadManager. It can be used statically (defined in QML) as well as
dynamically (through above helper in core.js). It connects to the
corresponding signals of DownloadManager and makes use of dynamic
MessageDialog objects to report success or error of the operation (if
requested).
core: ApplicationSettings: add exeCount to new Internal settings group

The exeCount setting is meant to track the number of application runs.
This is primarily needed to be able to detect the first run.

It is stored in the newly added [Internal] settings group, which
should not be edited by the user.
core: main: show popup message on the first start
core: Bar: visualize running downloads in the bar

Clicking on the download image launches the DownloadDialog.
core, DialogConfig: adjust to dialog helpers and show some more
information about available voices files

The user can now see immediately if sound files for his current locale
are installed and can trigger a download- or update-request.

Also we inform after a newly selected locale upon "save" if the
corresponding sound files are not yet available.
core: add helper for activities checking for voices availability
click_on_letter: inform user if voices are missing

... using checkForVoices() helper

Also make sure to show target letter if no voices are available for
current locale.
planegame: inform user if voices are missing

... using checkForVoices() helper
click_on_letter: update click_on_letter audio upon startup

Otherwise it will be wrong after changing locale
magic hat, major refactoring

This activity was not working properly when the screen was resized.
The new version avoid recreating a specific star set for the animation
from the hat towards the final destination. Instead, the stars are
reparented to the hat and then to their final destination.
magic hat, minor, resized the line
Merge branch 'master' of https://github.com/bdoin/GCompris-qt into master_cmake
gletters, fixed a race condition during the letter animation

During the letter animation it was still possible to catch the same
letter.
core: DownloadManager: fix signalling

- When aborting downloads we need to disconnect the error signal early
or we might run into a deadlock when quitting application. Instead we
emit a OperationCanceledError after aborting has finished.

- A downloadJob must be removed internally *before* signalling
downloadFinished or we might run into a race condition/segfault when
quitting the application.