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?
There's a sources select box already that does the same thing, so I did't take much care about it.
Maybe `current_user.agents.where(type: Agent.all.select(&:can_control_other_agents?).map(&:type))` and similar would help a bit.