Added a Least Recently Used purging schema

When calling s_broker_purge, always the first worker is checked for expiration. If that one never times out or disconnects, no workers will be purged.
To make sure newer workers can timeout too, we need to move fresh workers to the end of the broker's waiting list. Only if there is more than one worker of course.