WIP: Refactor certificate agent and queue

Details to follow...
I really feel like caching the course ids should be the province of certificate_agent. The queueing library seems like the wrong place to put knowledge of courses and certificate generators. This seems like it would get us further away from being able to transparently plop in a different queueing scheme...?