Support multiple agents to wait for

Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
python pitfall: 
don't use an empty list as a default value, it reuses the list on subsequent calls.
use None and check for None in the body.