gps: fixed singleshot session that doesn't stop

When a single shot location is requested and a
location is returned, the location request is
not stopped and so it continues even when the
requestor has stopped listening. This can cause
gps tracking to continue in the backgroud and eat
up battery.

This is fixed by stoping the provider if there
are no more update record associated with it
when a location is returned.

Change-Id: Ie437732ff06231a46724843af30e21ca3a1694ab
LockScreen: Fix crash when unlocking twice

This will keep track if the BroadCastReceiver is registered and
will unregister it only if so.

Change-Id: I040d710cf0927394f36b2e3da251ac5a988ce1d6
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>