In order to be able to change how templates are processed later on, we
move the logic that processes templates to a new abstraction: Scheduler.
Right now, one implementation of Scheduler exists: sequential. This is
essentially the same approach as what we have now embedded in the
configs, but is now moved to this structure, so we can change it later.