Add EventQueue and refactor router frontend to use client/cache

How about:

    if _, ok := c.Router.FindFrontend(app.ServiceName); !ok {
        c.Router.CreateFrontend(app.ServiceName, "")
    }