Track agent last seen

This is to make sure that agents going offline without unregistering at the master won't go unnoticed forever.

It's also a failsafe to make sure that agents really have the tasks they are supposed to have, in case a some celery task gets dropped along the way (which can happen, especially when we're using redis as the message queue.)