Refactor the retrieval services for microservice architecture 
# What does this PR do ?

Refactor the retrieval services so each component can be deployed alone inside a container. This allows it to be served easily in a cloud. Also fixed some issues with zero neighbor retrieval. 