improve location services and reduce bouncing

When getting an updated location from LocationListener, we need to check to see if it's actually better than our previous location. Doing so will reduce the number of inaccurate updates being fed into the GeoData in CGeo and reduce the bouncing effect.