Add EventQueue and refactor router frontend to use client/cache

Nit: More accurate to say that it synchronizes the router state with known endpoint states? It doesn't have anything to do with pods, directly.