ActionMode for local repo config

Now the local repo config feels a lot more Android-ish, with the ActionMode
being triggering when the user makes a change to the list of selected apps.
The ProgressDialog for generating the repo is now shown on top of the
KerplappActivity, and it is cancelable via touch outside or back button,
and the repo generation process will keep going in the background.

fixes #3200 https://dev.guardianproject.info/issues/3200
move webserver to a service for hosting all swapping stuff

The webserver thread is now in a separate Service that is meant to host all
the stuff related to swapping repos and apps.  Anything related to swapping
that needs to occur in the background so that the user can do whatever with
FDroid should go in this service.  That then provides an easy way to start
and stop swapping as well as provide a notification for when swapping is
active.

fixes #2908 https://dev.guardianproject.info/issues/2908
use global, static properies in Application for local repo state

The Application class is meant to provide a place to store global state of
the app, so let's use it!  FDroid uses it already, its called FDroidApp, so
the calls will get a lot shorter once in FDroid since KerplappApplication
will be replaced by FDroidApp.

Don't fear the global static properties!  Getters and setters suck often.
Or maybe I've just been too deep in Python these days ;)

refs #3204 https://dev.guardianproject.info/issues/3204
create RESTART msg and wire it up to LocalRepoService

This is needed to restart the webserver when the wifi or IP address changes
so that it can bind to the new address.  I added a STOP and START message
for good measure, they will be useful for controlling the webserver based
on the status of swapping.

fixes #2908 https://dev.guardianproject.info/issues/2908
move getSharingUri() to Utils for easier reuse
purge "Send to Local FDroid" test menu item, its unneeded now
move repo, ssid, and bssid to static vars in FDroidApp

Since there is only one local, device repo for swapping, it makes sense to
represent it using static variables in the Application subclass.  It makes
the code a lot simpler too.

FYI KerplappApplication will become FDroidApp once integrated.
move LocalRepoService handling to FDroidApp

This provides very easy to use way to start, stop, and restart the local
repo from anywhere in the app, without needing any special context or info.

refs #2908 https://dev.guardianproject.info/issues/2908
REBASE move repo, ssid, and bssid to static vars in FDroidApp