Add enumeration to LookupService

Add a function to enumerate all reachable Locations in a lookup database.

The point of this functionnality is to make the locations available for services that have access to geolocalized data, but not to the IP addresses.

Note that enumerating all locations consumes orders of magnitude more resources than a single lookup. The city maxmind database from january 2013 on which I tried this contains more than 200.000 ip blocks that reference about 54.000 locations (that is, more than 200.000 leaves in the tree, and 54.000 location records in the database).