Save battery on unchanging location.
Uses 2-part detection:
1) DetectUnchangingLocation is used to determine if the user has not
moved in 2 minutes, then the ScanManager pauses (this is a low power
state)
2) When the MotionSensor detects movement (which uses very low power
sensors to do so), start scanning again.

Also worth noting, the notification text changes when paused, and the
map view shows a paused message also.

- MapLocationListener will use the network listener until the GPS
kicks in.
Minor clean up to getScanResults
added tests around the CellRadio and Radio fields in CellInfo to make sure that any unknown values are set to empty string.
* pushed the responsibility for checking the bounds of the
  StumblerBundle wifi and cell size into an addWifiData and addCellData
  method.
* Changed the StumblerBundle to return only unmodifiable maps so that
  the bounds can never be changed.
demonstration of blowing past the memory limits in DataStorageManager
Updated testcase to properly fail instead of loggin to stdout and
updated a comment on MAX_REPORTS_IN_MEMORY
Wrap unregisterReceiver in try/catch
Got rid of some noise logging that didn't provide any value.
added .clearReports(), addReport(String), finalizeReports(), reportsCount() and maxReportsReached() methods to the ReportBatchBuilder to hide the collection.
* addReport(String) will now only add records into memory up to the size of MAX_REPORTS_IN_MEMORY.  Any additions after that will be dropped.
Added developer options to control the motions sensing
Fixed a bug, time window was in seconds, not ms.
Added gui log messages to indicate no gps timeout, or lack of movement distance
Merge pull request #1279 from crankycoder/features/1268-json-crash

Features/1268 json crash
Merge pull request #1270 from garvankeeley/motion-detection

Battery-saving mode (by pausing GPS and scanners) on unchanging location.