Before this patch, all plugins had to discard received packages that were
not for themselves. This could be a security problem (a plugin could sniff
other plugin's packages) and also adds some complexity and processing.
This patch makes the device instance aware of what services are required
by the different plugins and when a package is received the corresponding
plugins will get the package.
These services will be listed on the plugin's desktop file, so the user
can decide whether to enable a plugin.
Note that this only works for receiving, not sending.
REVIEW: 113210
Now it just downloads to the user desktop payloads received in packages
with type kdeconnect.filetransfer.
Added the package type define.
Created an an auxiliar QFile-like class with a small needed modification.
Added a commented test in the filetransfer plugin code (to be moved).
Now protocol version is only sent once (in the identity package)
Removed "isEncrypted" bit, using type "kdeconnect.encrypted" instead.
NetworkPackage's decrypt and unserialize return false when find problems
Updated tests.