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?
Slightly faster to do `user_id == user.id`