No need for scheduler class

A simple arrayref attribute is enough to store current targets list, and
help keeping the main loop in agent object.
enforce camelCase
merge run and _getNextTarget methods

This is much simpler to read and understand.