map_services and walk_services

map_services might not be the best name for this function, because it is not
a fixed external map function, but a method of the service itself.
Merge new map_services and walk_services utils

Replaces the earlier attempt with map_reduce_services