Fix the network session state tracking

Originally, this started as an attempt at fixing the network session tracking on
desktop Linux with NetworkManager where Trojita would not notice that we have
moved from eth0 to wlan0, which was rather annoying. In an attempt to fix this,
I've decided to move the logic to an extra class because there is really no
reason for this to be implemented within the Model itself. While I was working
on the move, it made sense to make the functions for specifying the new network
policy private, which required some fixups in the auto tests.

I also changed the logic for actual network state tracking on the go. It didn't
make much sense to do this in a separate commit because the functionality was
broken anyway, so I decided to not waste any time copy-pasting broken code. It
looked as if everything was OK, but nope -- the functionality was broken on
Harmattan. At that point I stopped and wanted to give Harmattan a try next day.
Fix network session for Harmattan

The rpevious commit left the Harmattan version in a rather crippled state. This
patch fixed the breakage; the session trakcing works reasonably well again
(read: it can connect, it can ask for a session when disconnected, etc).

Roaming is not implemented yet.

v2: Fix build warning on GCC, thanks to Caspar for noticing.
Only open the session when needed
Reconnect when we're offline not by policy, but by necessity

This works surprisingly well even on Harmattan (at least when tested by manual
hopping between two different wlans, disconnecting from the system's menu, etc).
Harmattan: do not connect to a signal when it is not needed

It's better to control the debugging by a comment and not let the signal
propagate when it is not needed.
Merge branch 'network-session'

REVIEW: 114689