Add PathOverlay to the map, to draw the GPS track

Also, use a consistent color for the GPS dot and track.

Note that post OSMDroid-4.2, PathOverlay is deprecated, and OSMDroid
recommends using Polyline in the OSMBonusPack:

https://github.com/osmdroid/osmdroid/issues/40
- Support for moz api key.
- Set the enabled state of the service based on the Firefox pref sent
- support for storing firefox 'stumbling enabled' state. The trick is here is handling the unknown state, so if the service is started from BOOT, then we need to check the pref on disk.
Client code now uses same database and sync code as server. The gradual move allowed for greater code stability for MozStumbler releases. This will require another beta release.
Relatively minor commit, moving and renaming.
- Moved files
-- ScreenMonitor to client, as this is not used by Fennec, so we don't
want in the service (yet)
--- DefaultCellScanner in the client needed updates to take over
start/stop of ScreenMonitor
--- CellScannerNoWCDMA in the service previous hosted the ScreenMonitor,
removed this usage
-- PersistentIntentService is moved from service to service/utils

- SharedConstants renamed to AppGlobals, and this class gets new
  guiLogInfo/Error util function. (dataStorageManager global is added
here, this class arrives in the next commit)
-- requred minor name change in CellScanner, PassiveServiceReceiver,
MapActivity, WifiScanner, GPSScanner

- Scanner.java renamed and moved to scanners/ScanManager.java. For
  clarity, and I avoid having files in the top level dir
Lint complains about a possible circular reference in this file. Changed
the code to use have the inner class reference the outer using a weak
reference, and the warning is gone
The grand refactor to remove the DB.
- Delete ContentResolver(s), Database.java

- DatabaseContract is now DataStorageContract, and has the constants
  used for file storage

- DataStorageManager is the backend, it has an in-memory working buffer
  for collecting reports, and in-memory buffer of reports to be sent,
and a list of files on disk (with about 50 reports per file). Please see the documentation  for the class, it explains this in more detail.

-- After data leaves the in-memory working buffer, it is zipped, this
required some changes to the network code to handle pre-zipped data
(AbstractCommunicator.java)

-- The constructor of DataStorageManager also upgrades the sync stats from the old DB.

- Removing the DB propagates changes to StumblerBundle, StumblerBundleReceiver, Submitter, Reporter.
The logic is unchanged in these classes, just cleanup for the backend.
These tests were DB-specific, and required gutting. The ServiceTest does a basic check of passive stumbling mode. This testing is not adequate, but it is better than nothing.
Uploading now uses a Android alarm service. It runs only when the device is awake, and is scheduled to run only when data is queued.
Changes to the db meant the syncstats are now stored in a key-value file. This required changing the GUI.
More importantly, with the Android Sync gone, we aren't getting easy access to upload data volumes, this is now shown in the upload dialog (total KB and queued KB).
A bug! When iterating the file list to upload, we are also deleting
files as they are uploaded. Need to store a const copy of this list
before iteration begins.
Merge pull request #738 from garvankeeley/passive-upload

Fennec Work: pull database back-end, replace with pure file-based storage
Merge pull request #727 from keverets/local-track

Add PathOverlay to the map to draw the GPS track