Major reorganization

The 'send out files' operation is split into an upload step and a
distribution step. This made the rest of the codebase much more modular.

There are now Jobs, Tasks and Actions.
A user initiates a Job.
A Job consists of one or more Tasks. Tasks are usually independent of each
other (can be done in parallel; if one task fails, that does not impact
other tasks).
A Task consists of one or more Actions. Actions are sequential and depend
on each other; a failed action aborts the remaining actions in a task.

The distribution method is now chosen individually for each target.

Config file organization has been re-done to make it easier to have
both test and production deploys.