Add EventQueue and refactor router frontend to use client/cache

Yes, something that uses http://golang.org/pkg/net/url/ probably. I think that's how we handle it everywhere else.