Added current location functionality. Added error handling.
In the location service, separated registration from constructor, making
call to the new method only when necessary (i.e. for current location
mode). Also added de-registration of the location listener (i.e. when
not in the current location mode).