Agent to regenerate events at a particular time or delay

invalidates pull request  #195

The agent has three mechanisms for repeating an event:
* setting delay (eg, 10m, 2h)
* setting a particular time (not particularly useful, since you could probably schedule the original event properly)
* setting a particular time based on the incoming event, so if the event has a time it wishes to run at, set "run_at" to point to that JSON path