Local storage abstraction (sdcard or internal storage)

Batphone should be able to run on a device without sdcard.

Use ServalBatPhoneApplication.getStorageFolder() for retrieving the sdcard
folder if it is present, an internal storage folder otherwise.

This is necessary but not sufficient, because Rhizome *needs* sdcard.
Disable rhizome option bugfix

Rhizome *needs* sdcard. If no sdcard is present on the device, then rhizome must
not be called.

A feature to disable it was already implemented, just add:
  rhizome.enable=0
to serval.conf (don't forget '\n').

But it was not read by the Android application not to call rhizome functions.

This commit disable rhizome calls and avoids to make the app crash when no
sdcard is present.
Use simpler peer count command for updating our notification
Make sure servald config for rhizome folder is on external storage
acquire multicast lock to try to disable broadcast receive packet
filters on many handsets (serval-dna issue 24).
Doesn't actually fix it on U8180, but apparently should work on most
phones >2.3.7.  Can also try augmenting it with sending overlay
traffic via multicast instead of broadcast.
Fix isRhizomeEnabled to allow for missing config
Reworked identity management to use keyring primitives

Now servald is only started when the wifi radio is on. Fixes issue #15.
Rework peer list population to increase reliability
Use new .fromhere column to replace .selfsigned
Add MIME type to ACTION_RECEIVE_FILE intent
Don't create directories that are no longer used
Provide a clickable link to serval maps web site
Sync version of servald
Added push / sync menu options to rhizome main screen iff rhizome.direct.peer.count is set
Pulled in serval-dna changes, including 20x speed up of crypto_sign
operations. (servalproject/serval-dna issue #17).