Add EventQueue and refactor router frontend to use client/cache

The router controller is responsible for pairing route aliases to service implementations via endpoints.