Add SchedulerAgent, which periodically runs other agents.

This is the core part of the solution to #444.  As the first step, I've implemented SchedulerAgent that supports cron-style schedule.  User can create SchedulerAgents as many as they want and bind target Agents to it.  A master scheduler job in HuginnScheduler periodically checks for SchedulerAgents to create/update/delete the corresponding jobs as necessary.

We can add some additional agents later if needs be:

* CalendarAgent: Runs target Agents if it is currently free or busy now in specified calendar(s).

* RunnerAgent: Runs target Agents when it receives an event.

How do you feel about this direction?
Each of them sounds interesting and useful.

- AgentDiagnosticAgent would watch AgentLogs and the working? status to notify user of potential troubles and recovery
- AgentCreatorAgent would create a new agent on an event using a template which will feed events to targets.

Lots of ideas, like it's unlimited. :laughing: