Use set for assigned agents

Using a set instead of a list for keeping track of which agents have had
tasks assigned to them during the current scheduler run is the more
logical choice and makes it impossible to accidentally have an agent in
there twice for whatever reason.