reworked GendreauContext stuff into a separate builder which can be injected into Communicator and RoutePlanner if required