Introduce mGpsStatusListenerActive variable to safely add or remove GpsStatusListener.  Check if a listener is already added in locationListeners
When WIFI changes make sure to stop and start location providers
Change startNetworkPolling to startPollingAfterFiveMinutes.  NetworkListener every 5 minutes does not post a location update, so including GPS listener to poll after 5 mins as well
For #8 rename adjustLocationUpdateInterval to adjustGpsUpdateInterval
Change startGPSPolling to startActivePolling, as it includes both network and gps listener
Refactor GpsManager for #8 to include startPolling(time, distance)
Rename ZERO_INTERVAL to ZERO_DISTANCE for #8
See #8, DRY in WifiStatusReceiver onReceive by using logic in GpsManager.startLocationProvider
We only need android.net.wifi.STATE_CHANGE to detect change in connectivity. When device detects WIFI, toast shows 4 times.  When device detects loss of WIFI, toast shows twice
Show toast on interval for GPS provider only
Change GPS First Fix to Receive First Fix
Set mActive when we start polling successfully