Ubuntu: toolbar option to change network policy

Implements offline, expensive and online options

languagechooser.svg is part of the Ubuntu-mobile-icons package
available from http://packages.ubuntu.com/trusty/all/ubuntu-mobile-icons
and is available under the CC-BY-SA 3.0. Copyright by 2004-2012,
Canonical Ltd.

REVIEW: 117910

Removed Q_INVOKABLE from NetworkWatcher slots.

Created a simple JS variable to act like an enum when switching and selecting
network connection states
Add AppStream metadata file for Trojita GUI
Import from OBS

This is needed to handle the newly added AppData file.
IMAP: fix FETCH FLAGS processing

It turned out that the check which the code was following was actually a pretty
dumb one -- if spectacularly failed to handle the case where the new flags of a
message were an empty set. This means that the message *is* unread (it has no
\Seen flag), and hence should be counted as a new one.

On most IMAP servers (but not on GMail), this would be very often masked because
the server would send back the \Recent flag most of the time (unless our session
lost the race). GMail, however, doesn't set \Recent on any message, and
therefore it was an excellent candidate for hitting this bug.

It seems that this has been broken for quite a long time:

    commit 74b222e5c7385b04ccc0aeddbf0d174d6c6462d6
    Author: Jan Kundrát <jkt@flaska.net>
    Date:   Wed Mar 21 14:02:20 2012 +0100

    IMAP: do not recalculate various message counts when the flags haven't changed

Many thanks to James Harkins <jamshark70@gmail.com> for reporting this bug and
providing enough details in order to find the root cause.

v2: Add an explicit check for the correctness of the recalculated number of
unread messages in some corner cases, like when a new arrival gets immediately
expunged. Also work with messages where some of them are read and some unread in
order to avoid testing "just" for the case of zero unread messages.

BUG: 334576
REVIEW: 118075