locator: Fix units in distance threshold comparison

Make sure we don't compare kilometers to meters.

https://bugs.freedesktop.org/show_bug.cgi?id=69105
service-location: Use property binding to keep locations in sync

Instead of copying values over from location_info to service_location,
just keep a ref to location_info and let gobject property binding keep
the properties in sync.

https://bugs.freedesktop.org/show_bug.cgi?id=69105
location-info: Allow setting properties after construct time

https://bugs.freedesktop.org/show_bug.cgi?id=69105
location-info: Don't warn for NULL description

set_description with NULL is a valid way for clearing the value.

https://bugs.freedesktop.org/show_bug.cgi?id=69105
locator: Rework the location updating logic

Previously, we would emit the LocationUpdated signal for any location
property change, disregarding the DistanceThreshold value. A change in
the "description" property would trigger the LocationUpdated signal,
even though we were well below the threshold.

This commit changes it to emit LocationUpdated only when we cross the
threshold. We keep track of the previous location where LocationUpdated
was last emitted. While below the threshold, we update the location
properties, but don't notify the clients; the clients only get notified
once the threshold is crossed.

https://bugs.freedesktop.org/show_bug.cgi?id=69105
interface: Add some documentation

Document the DistanceThreshold property and LocationUpdated signal.

https://bugs.freedesktop.org/show_bug.cgi?id=69105